v153 · javascript · covered on mdn
Joint Iteration
Adds two static methods to Iterator — Iterator.zip and Iterator.zipKeyed — that synchronise the advancement of multiple iterators, the operation often called zip. zip takes an iterable of iterables and yields arrays of positionally-aligned values; zipKeyed takes an object whose values are iterables and yields objects with the same keys. An options bag selects a mode of "shortest" (the default), "longest" (with optional per-input padding), or "strict" (which throws unless all inputs finish together). The proposal reached TC39 Stage 4 and was merged into ECMA-262 on 2026-06-02.
this feature is documented on MDN
MDN’s reference covers both methods in full — syntax, parameters (including the mode/padding options), return value, worked examples, specifications, and browser compatibility — at Iterator.zip() and Iterator.zipKeyed() (both verified substantive, 2026-07-29). gendn doesn't duplicate that here.
Why gendn doesn't duplicate MDN: this site exists for Chrome features that have no MDN reference yet. When MDN covers a feature completely, the honest page is a pointer to the canonical reference plus the shipping metadata MDN doesn't track — duplicated prose would only drift out of sync.
quick reference
| The change | Two static methods on Iterator: Iterator.zip(iterables, options?) (iterable of iterables → iterator of arrays) and Iterator.zipKeyed(iterables, options?) (object of iterables → iterator of objects), with options.mode = "shortest" (default) / "longest" (plus optional options.padding) / "strict" |
|---|---|
| Chrome status | Enabled by default in Chrome 153 — the milestone=153 listing files it under “Enabled by default” and is authoritative (verified 2026-07-29). The detail record’s status text still reads “Proposed” — stale metadata on the record, disclosed here |
| Spec | TC39 Joint Iteration proposal (Stage 4); merged into ECMA-262 by tc39/ecma262 PR #3802 on 2026-06-02 |
| V8 state | Flag --js-joint-iteration sits in JAVASCRIPT_STAGED_FEATURES (“complete, but still behind the --harmony flag”) in V8’s flag-definitions.h at trunk (verified 2026-07-29); it is not yet in the shipping-features list there. The listing’s “Enabled by default 153” is the authoritative shipping claim |
| MDN | Iterator.zip() · Iterator.zipKeyed() |
| Browser compatibility | BCD javascript/builtins/Iterator.json (verified 2026-07-29): Chrome false with impl_url crbug 465357675 — BCD has not yet recorded the Chrome 153 default-on (freshness gap; the listing is authoritative). Firefox 148. Safari false (webkit.org/b/303246) |
| Tests | test262 (the ECMA-262 conformance suite; JavaScript features use test262, not WPT): 38 Iterator/zip files and 44 Iterator/zipKeyed files (counted 2026-07-29) |
| Baseline | The parent iterator-methods web-feature is Baseline newly available (webstatus.dev, 2026-07-29); the ChromeStatus record marks this addition’s own Web Feature ID as “Missing feature” |
| ChromeStatus | 6249068542164992 — Joint Iteration (blink component Blink>JavaScript>Language) |
| Interactive demos | No Chrome Platform Showcase route exists for this feature (the expected route returned 404 on 2026-07-29); MDN’s examples are the canonical runnable snippets |
references
- Chrome Platform Status — Joint Iteration (API record)
- MDN — Iterator.zip() (canonical reference) and MDN — Iterator.zipKeyed()
- TC39 proposal repository — Joint Iteration (Stage 4) · rendered specification · ecma262 integration PR #3802 (merged 2026-06-02)
- V8 flag-definitions.h — js_joint_iteration (staged) · Chromium tracking bug 465357675
- test262 — Iterator/zip · test262 — Iterator/zipKeyed
- BCD — javascript/builtins/Iterator.json · webstatus.dev — iterator-methods