Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0506f92aff189ff96f76f96a7666c62618feb89f
https://github.com/WebKit/WebKit/commit/0506f92aff189ff96f76f96a7666c62618feb89f
Author: Yusuke Suzuki <[email protected]>
Date: 2026-09-25 (Fri, 25 Sep 2026)
Changed paths:
A JSTests/microbenchmarks/json-parse-utf16-leaf-object.js
A JSTests/microbenchmarks/json-parse-utf16-nested-records.js
A JSTests/stress/json-parse-utf16-object-key-fast-paths.js
M Source/JavaScriptCore/runtime/JSONTransitionCache.h
M Source/JavaScriptCore/runtime/JSONTransitionCacheInlines.h
M Source/JavaScriptCore/runtime/LiteralParser.cpp
Log Message:
-----------
[JSC] Expand transition cache / single-transition cache for 16bit source
https://bugs.webkit.org/show_bug.cgi?id=325304
rdar://188416013
Reviewed by Yijia Huang.
We expand our single-transition / transition cache for 16bit source in
JSON.parse. While source can be 16-bit, still it is likely that many of
property names are latin-1. So this cache is tailored for that pattern
while accepting 16-bit source input. 8bit source path is not changed.
ToT
Patched
todomvc-javascript-es5-json-parse 30.5067+-0.9162 ^
25.2602+-0.4357 ^ definitely 1.2077x faster
todomvc-javascript-es6-webpack-json-parse
48.1740+-1.5546 ^
43.2290+-0.9709 ^ definitely 1.1144x faster
json-parse-utf16-leaf-object 177.0970+-2.5839 ^
114.8328+-0.8250 ^ definitely 1.5422x faster
json-parse-utf16-nested-records 49.7081+-0.5226 ^
44.0765+-1.7008 ^ definitely 1.1278x faster
Tests: JSTests/microbenchmarks/json-parse-utf16-leaf-object.js
JSTests/microbenchmarks/json-parse-utf16-nested-records.js
JSTests/stress/json-parse-utf16-object-key-fast-paths.js
* JSTests/microbenchmarks/json-parse-utf16-leaf-object.js: Added.
* JSTests/microbenchmarks/json-parse-utf16-nested-records.js: Added.
(next):
* JSTests/stress/json-parse-utf16-object-key-fast-paths.js: Added.
(shouldBe):
* Source/JavaScriptCore/runtime/JSONTransitionCache.h:
* Source/JavaScriptCore/runtime/JSONTransitionCacheInlines.h:
(JSC::JSONTransitionCache::key):
(JSC::JSONTransitionCache::transitionIfMatches):
(JSC::JSONTransitionCache::get):
(JSC::JSONTransitionCache::add):
* Source/JavaScriptCore/runtime/LiteralParser.cpp:
(JSC::reviverMode>::Lexer::tryConsumeStringEqualTo):
(JSC::requires):
Canonical link: https://commits.webkit.org/321936@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications