• 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
..
api Loading commit data...
asmjs Loading commit data...
assembler Loading commit data...
base Loading commit data...
codegen Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
date Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
heap Loading commit data...
interpreter Loading commit data...
libplatform Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parser Loading commit data...
profiler Loading commit data...
regress Loading commit data...
strings Loading commit data...
tasks Loading commit data...
torque Loading commit data...
utils Loading commit data...
wasm Loading commit data...
zone Loading commit data...
BUILD.gn Loading commit data...
DEPS Loading commit data...
run-all-unittests.cc Loading commit data...
test-helpers.cc Loading commit data...
test-helpers.h Loading commit data...
test-utils.cc Loading commit data...
test-utils.h Loading commit data...
testcfg.py Loading commit data...
unittests.status Loading commit data...