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