Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5ee92514060caaeb7154dcedc8c0d10daab141ba
      
https://github.com/WebKit/WebKit/commit/5ee92514060caaeb7154dcedc8c0d10daab141ba
  Author: Sosuke Suzuki <sos...@bun.sh>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    A JSTests/microbenchmarks/iterator-prototype-toArray-generator.js
    A JSTests/microbenchmarks/uint8array-constructor-generator.js
    A JSTests/stress/iterator-cached-call-bad-time.js
    A JSTests/stress/iterator-cached-call-prototype-mutation.js
    M Source/JavaScriptCore/CMakeLists.txt
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/Sources.txt
    A Source/JavaScriptCore/interpreter/CachedCall.cpp
    M Source/JavaScriptCore/interpreter/CachedCall.h
    M Source/JavaScriptCore/interpreter/ProtoCallFrame.h
    M Source/JavaScriptCore/interpreter/ProtoCallFrameInlines.h
    M Source/JavaScriptCore/runtime/IteratorOperations.cpp
    M Source/JavaScriptCore/runtime/IteratorOperations.h
    M Source/JavaScriptCore/wasm/WasmGlobal.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunction.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.h

  Log Message:
  -----------
  [JSC] Use `CachedCall` for iterator `next` method call
https://bugs.webkit.org/show_bug.cgi?id=298184

Reviewed by Yusuke Suzuki.

This patch changes to use `CachedCall` for iterator `next` method
call in `forEachInIterable` and `forEachInIterationRecord`.

                                              TipOfTree                  Patched

iterator-prototype-toArray-generator      366.0637+-10.7211    ^    
296.6426+-3.9403        ^ definitely 1.2340x faster
uint8array-constructor-generator          315.6941+-1.3522     ^    
254.6056+-2.4686        ^ definitely 1.2399x faster

Tests: JSTests/microbenchmarks/iterator-prototype-toArray-generator.js
       JSTests/microbenchmarks/uint8array-constructor-generator.js
       JSTests/stress/iterator-cached-call-bad-time.js
       JSTests/stress/iterator-cached-call-prototype-mutation.js

Tests: JSTests/microbenchmarks/iterator-prototype-toArray-generator.js
       JSTests/microbenchmarks/uint8array-constructor-generator.js
       JSTests/stress/iterator-cached-call-bad-time.js
       JSTests/stress/iterator-cached-call-prototype-mutation.js
* JSTests/microbenchmarks/iterator-prototype-toArray-generator.js: Added.
(shouldBe):
(gen):
* JSTests/microbenchmarks/uint8array-constructor-generator.js: Added.
(shouldBe):
(gen):
* JSTests/stress/iterator-cached-call-bad-time.js: Added.
(shouldBe):
(generator):
(iter.next):
* JSTests/stress/iterator-cached-call-prototype-mutation.js: Added.
(shouldBe):
(shouldThrow):
(throw.new.Error.generator):
(throw.new.Error.iter.forEach.):
(throw.new.Error):
(shouldBe.generator):
(shouldBe.iter.next):
* Source/JavaScriptCore/CMakeLists.txt:
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/interpreter/CachedCall.cpp: Added.
(JSC::CachedCall::CachedCall):
(JSC::CachedCall::relink):
* Source/JavaScriptCore/interpreter/CachedCall.h:
(JSC::CachedCall::CachedCall): Deleted.
(JSC::CachedCall::relink): Deleted.
* Source/JavaScriptCore/interpreter/ProtoCallFrame.h:
* Source/JavaScriptCore/interpreter/ProtoCallFrameInlines.h:
* Source/JavaScriptCore/runtime/IteratorOperations.cpp:
(JSC::iteratorNextWithCachedCall):
(JSC::iteratorStepWithCachedCall):
* Source/JavaScriptCore/runtime/IteratorOperations.h:
(JSC::forEachInIterationRecord):
(JSC::forEachInIterable):
* Source/JavaScriptCore/wasm/WasmGlobal.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyBuiltin.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyFunction.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.h:

Canonical link: https://commits.webkit.org/300143@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to