v8/include
Dan Elphick b097a8e5de [api] Create v8::String::NewFromLiteral that returns Local<String>
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: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66622}
2020-03-09 12:02:07 +00:00
..
libplatform [platform] Support nestable and non-nestable tasks in DefaultForegroundTaskRunner 2020-01-24 01:07:50 +00:00
APIDesign.md Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
DEPS [inspector] Build inspector under v8_enable_inspector build flag. 2016-09-06 23:26:35 +00:00
js_protocol-1.2.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol-1.3.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol.pdl Updated documentation for {replMode} parameter in {Runtime.evaluate} 2020-02-26 08:53:32 +00:00
OWNERS Add verwaest as an API owner 2019-10-15 17:40:59 +00:00
v8-fast-api-calls.h [api] Create v8::String::NewFromLiteral that returns Local<String> 2020-03-09 12:02:07 +00:00
v8-inspector-protocol.h [inspector] Build inspector under v8_enable_inspector build flag. 2016-09-06 23:26:35 +00:00
v8-inspector.h [debugger] Allow termination-on-resume when paused at a breakpoint 2020-02-03 16:33:29 +00:00
v8-internal.h [ptr-compr] Fix decompression functions in v8-internal.h 2020-02-13 12:30:25 +00:00
v8-platform.h [platform] Require the foreground taskrunner to support non-nestable tasks for weak refs 2020-01-24 05:04:10 +00:00
v8-profiler.h [heap-profiler] Expose 'globalObjectsAsRoots' via inspector interface 2019-12-18 10:18:58 +00:00
v8-util.h Reland "[api,heap] Remove deprecated Persistent APIs" 2019-04-24 09:34:27 +00:00
v8-value-serializer-version.h Expose the ValueSerializer data format version as a compile-time constant. 2017-04-27 15:14:41 +00:00
v8-version-string.h [build] Fix V8_VERSION_STRING with embedder string 2017-10-23 14:31:52 +00:00
v8-version.h Update version to 8.2 2020-01-30 15:01:12 +00:00
v8-wasm-trap-handler-posix.h [api] Fix includes in trap handler API header files 2019-01-16 15:15:52 +00:00
v8-wasm-trap-handler-win.h [api] Fix includes in trap handler API header files 2019-01-16 15:15:52 +00:00
v8.h [api] Create v8::String::NewFromLiteral that returns Local<String> 2020-03-09 12:02:07 +00:00
v8config.h api,handles: Support for on-stack TracedReference 2020-01-14 15:37:57 +00:00