v8/include
Benedikt Meurer 683cf6f43b [cleanup] Remove obsolete "one byte data hint" for strings.
In the early days of Chrome when we used WebKit there was no support for
ASCII strings on the C++ side, so we put a hint onto these two-byte
strings that said "string only contains one byte data", such that
internally in V8 when these were involved in string operations, we could
instead create the *cheaper* one byte strings.

Nowadays Blink properly supports one-byte string representations and
this additional hint only comes with overhead, since we check it in
quite a few places (i.e. on the hot path for string concatenation), plus
we end up consuming more memory due to the additional string maps.
Removing the hint also frees one bit in the InstanceType zoo for
strings.

This alone improves performance on the `bench-dom-serialize.js` test case
by around **3%**.

Tbr: mstarzinger@chromium.org
Bug: v8:6622, v8:8834, v8:8939
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I0753f2859cee7b5a37b6f0da64d8ec39fcb044ff
Doc: https://bit.ly/fast-string-concatenation-in-javascript
Reviewed-on: https://chromium-review.googlesource.com/c/1498478
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60006}
2019-03-04 14:04:02 +00:00
..
libplatform [tracing] Fix races in TracingController implementation 2019-02-21 08:34:16 +00:00
APIDesign.md Replace <> with &lt;&gt; in md docs 2017-06-12 10:09:12 +00:00
DEPS [inspector] Build inspector under v8_enable_inspector build flag. 2016-09-06 23:26:35 +00:00
OWNERS [ptr-compr] Add gn arg for 31bit Smis on 64bit arch 2018-10-24 13:26:35 +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 Revert "inspector: teach v8Inspector to return default context" 2019-01-18 08:42:05 +00:00
v8-internal.h [cleanup] Remove obsolete "one byte data hint" for strings. 2019-03-04 14:04:02 +00:00
v8-platform.h [heap] Use non-nestable delayed tasks in incremental marking job 2019-02-19 14:15:06 +00:00
v8-profiler.h [heap-profiler] Remove the old RetainerInfo mechanism. 2019-01-24 16:58:31 +00:00
v8-testing.h Remove easy to remove calls to Isolate::Current() from api.cc 2015-11-30 08:16:59 +00:00
v8-util.h PersistentValueMapBase: Deprecate outdated marking API 2019-02-25 16:43:33 +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 7.4 2019-01-24 12:00:16 +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] Add new configuration change methods 2019-03-04 12:56:51 +00:00
v8config.h [c++11] Replace V8_ALIGNOF by alignof 2018-12-17 16:42:59 +00:00