Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 240de0cf9d96a953b256e8c87fa479a558bef9ef
      
https://github.com/WebKit/WebKit/commit/240de0cf9d96a953b256e8c87fa479a558bef9ef
  Author: Kai Tamkun <[email protected]>
  Date:   2026-07-24 (Fri, 24 Jul 2026)

  Changed paths:
    A JSTests/microbenchmarks/iterator-zip-keyed.js
    A JSTests/microbenchmarks/iterator-zip.js
    A JSTests/stress/iterator-zip.js
    M JSTests/test262/config.yaml
    M Source/JavaScriptCore/builtins/BuiltinNames.h
    M Source/JavaScriptCore/builtins/JSIteratorConstructor.js
    M Source/JavaScriptCore/bytecode/LinkTimeConstant.h
    M Source/JavaScriptCore/runtime/IteratorOperations.h
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/JSIteratorConstructor.cpp
    M Source/JavaScriptCore/runtime/JSIteratorConstructor.h
    M Source/JavaScriptCore/runtime/ReflectObject.cpp
    M Source/JavaScriptCore/runtime/ReflectObject.h
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml

  Log Message:
  -----------
  [JSC] Implement Joint Iteration proposal
https://bugs.webkit.org/show_bug.cgi?id=319921
rdar://180967133

Reviewed by Yusuke Suzuki.

This patch implements Iterator.zip and Iterator.zipKeyed, which are
part of the TC39 Joint Iteration proposal (which is Stage 4 as of
this writing). The feature is gated behind the `useJointIteration`
option, which for now is default-off.

Tests: JSTests/microbenchmarks/iterator-zip-keyed.js
       JSTests/microbenchmarks/iterator-zip.js
       JSTests/stress/iterator-zip.js

* JSTests/microbenchmarks/iterator-zip-keyed.js: Added.
(shouldBe):
(test):
* JSTests/microbenchmarks/iterator-zip.js: Added.
(shouldBe):
(test):
* JSTests/stress/iterator-zip.js: Added.
(stringify):
(deepEqual):
(shouldBe):
(Array.from.Iterator.zipKeyed):
* JSTests/test262/config.yaml:
* Source/JavaScriptCore/builtins/BuiltinNames.h:
* Source/JavaScriptCore/builtins/JSIteratorConstructor.js:
(linkTimeConstant.getIteratorSync):
(underlyingIterators.return):
(generator):
(linkTimeConstant.iteratorZip):
(linkTimeConstant.getOptionsObject):
(linkTimeConstant.closeAllIterators):
(linkTimeConstant.iteratorCloseAllNormal):
(linkTimeConstant.removeFirstFromList):
(zip):
(zipKeyed):
* Source/JavaScriptCore/bytecode/LinkTimeConstant.h:
* Source/JavaScriptCore/runtime/IteratorOperations.h:
* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* Source/JavaScriptCore/runtime/JSIteratorConstructor.cpp:
(JSC::JSIteratorConstructor::finishCreation):
* Source/JavaScriptCore/runtime/JSIteratorConstructor.h:
* Source/JavaScriptCore/runtime/ReflectObject.cpp:
* Source/JavaScriptCore/runtime/ReflectObject.h:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to