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

Reply via email to