• Dan Elphick's avatar
    [api] Create v8::String::NewFromLiteral that returns Local<String> · b097a8e5
    Dan Elphick authored
    String::NewFromLiteral is a templated function that takes a char[N]
    argument that can be used as an alternative to String::NewFromUtf8 and
    returns a Local<String> rather than a MaybeLocal<String> reducing the
    number of ToLocalChecked() or other checks.
    
    Since the string length is known at compile time, it can statically
    assert that the length is less than String::kMaxLength, which means that
    it can never fail at runtime.
    
    This also converts all found uses of NewFromUtf8 taking a string literal
    or a variable initialized from a string literal to use the new API. In
    some cases the types of stored string literals are changed from const
    char* to const char[] to ensure the size is retained.
    
    This API does introduce a small difference compared to NewFromUtf8. For
    a case like "abc\0def", NewFromUtf8 (using length -1 to infer length)
    would treat this as a 3 character string, whereas the new API will treat
    it as a 7 character string.
    
    As a drive-by fix, this also fixes all redundant uses of
    v8::NewStringType::kNormal when passed to any of the String::New*
    functions.
    
    Change-Id: Id96a44bc068d9c4eaa634aea688e024675a0e5b3
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089935
    Commit-Queue: Dan Elphick <delphick@chromium.org>
    Reviewed-by: 's avatarMathias Bynens <mathias@chromium.org>
    Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66622}
    b097a8e5
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
debugging Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-api-tests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...