NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1028 most downloaded on npm
An ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.
Last release 2 months ago
10 Jul 2026
Release timing varies
gaps range from 4 weeks to 12 months
Nearly every release is documented
notes for 29 of 29 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
29 releases · first in 2023
One column per quarter.
[New] add Iterator.prototype.windows `3d0f70f`
Iterator.prototype.windows 3d0f70fIterator.prototype.chunks 15bb82dIterator.prototype.join c525db8Iterator.prototype.take, Iterator.prototype.drop: throw a RangeError when limit is finite and > 2 ** 53 - 1 36cd90amock-property, tape 9cc9f8cevalmd 52a89eb[Tests] improve implementation coverage to 100% across all methods `a5afa47`
a5afa47a422740test262 as a submodule and run it against the shim in CI 47f96fe0baf1c5Iterator.prototype.constructor, Iterator.prototype[Symbol.toStringTag]: use SetterThatIgnoresPrototypeProperties 2fd33a19748573WrapForValidIteratorPrototype tests: inheritance, helper method access via prototype 45570dcIteratorHelperPrototype tests: @@toStringTag, inheritance, return() in SUSPENDED-START f62b5fdzipKeyed: skip deleted keys instead of throwing on an absent descriptor 5a96826zipKeyed: add an order-independent string-key deletion test 0a406b4includes: throw RangeError when skippedElements exceeds 2 ** 53 - 1 c0dc5cfzipKeyed: use integer-index keys in the deletion test a22dd27Iterator.prototype: install Symbol.toStringTag, unskip test (Chrome bug is fixed) a40ded7zipKeyed: version-gate the string-key deletion test 35453c5require-stash 2a40486@ljharb/eslint-config, auto-changelog 4bbf647tape 67fe73enpm ls check on old node 13918b2[Fix] detect missing early-error IteratorClose in native implementations `7de2a9d`
IteratorClose in native implementations 7de2a9dindex files 8416384IteratorZip: remove errored iterator from openIters in strict mode 53f4b4afilter: add early-error IteratorClose pattern, fix counter increment ordering ef39451flatMap: add early-error IteratorClose pattern, fix inner iterator close semantics dc122ccdrop, flatMap: do not close iterator on IteratorStepValue protocol violation 8761fe6drop: add early-error IteratorClose pattern, fix validation ordering f5cc006take: add early-error IteratorClose pattern, fix validation ordering fb5db74zipKeyed: use Get for property access, fix missing IfAbruptCloseIterators aec8d80map: add early-error IteratorClose pattern per latest spec ce222a4find: add early-error IteratorClose pattern per latest spec e7cb5e9every: add early-error IteratorClose pattern per latest spec 64630cbforEach: add early-error IteratorClose pattern per latest spec beb0650reduce: add early-error IteratorClose pattern per latest spec 14225absome: add early-error IteratorClose pattern per latest spec 3bf20c3includes: allow Infinity/-Infinity for skippedElements 8eddc9eGeneratorResumeAbrupt: pass ReturnCompletion to closeIfAbrupt 55dc985zipKeyed: work around V8 4.6 (node 5) ownKeys ordering bug in accessor test 309cdc1@es-shims/api, @ljharb/eslint-config 9694b211089a801545d84call-bind 45897c7{ next: null } Chrome bug and affected versions eee929ces-abstract 7bed3ec[Fix] includes: close iterator when throwing `5b2ed34`
includes: close iterator when throwing 5b2ed34[New] add Iterator.prototype.includes `554f43a`
[Tests] joint iteration: add missing & passing test262 tests `34258f3`
34258f3call-bound, es-abstract, get-intrinsic e05660bIterator.from, Iterator.prototype.toArray: add missing & passing test262 tests 7831bd6eslint, @ljharb/eslint-config 35ecd14IteratorZip: return should close all underlying iterators 5bcab73IteratorHelperPrototype: throw TypeError when return() is called re-entrantly 0acdd41Iterator.concat: add missing & passing test262 tests 9645f4dIterator.concat: prevent return() from being forwarded multiple times 1271d61Iterator.zip: strict mode should return sentinel after all iterators done f4c8b99@es-shims/api, @ljharb/eslint-config, eslint, eslint-plugin-import, has-strict-mode, make-generator-function, npmignore acba233es-abstract, es-set-tostringtag, get-intrinsic, iterator.prototype 06515e7es-value-fixtures, for-each, object-inspect 2afe7a3@ljharb/eslint-config, eslint 18fa1c1GeneratorResumeAbrupt: set state to COMPLETED after return completion 10e5e21es-abstract 3469d15a0d780d[Tests] Iterator.concat: add most of the tests from https://github.com/tc39/test262/pull/4326 `2e340da`
Iterator.concat: add most of the tests from https://github.com/tc39/test262/pull/4326 2e340daIterator.concat: rewrite implementation to match updated spec text 1a70fd3IteratorZip AO: allow an empty list of iterators 265e5663cc9db0IteratorHelperPrototype: in pre-proto envs, use same .return impl da02ab6call-bind, es-abstract, get-intrinsic, gopd, has-proto, internal-slot, iterator.prototype, safe-array-concat e9eefabIterator.zip: nullish non-function Symbol.iterator does not throw c6b0705call-bound directly 92afc5agopd, has-proto, has-symbols 7f8a1c0Iterator.zip, Iterator.zipKeyed dd80b2f@es-shims/api 1e9857ces-abstract c8157daes-abstract 256de0eobject-inspect 2f8544b[New] add Iterator.zip, Iterator.zipKeyed `d11073f`
[New] add Iterator.concat `1c07c21`
Iterator.concat 1c07c21ae0b60c@es-shims/api, auto-changelog, es-value-fixtures, eslint-plugin-import, tape bd34766@ljharb/eslint-config, mock-property, object-inspect, tape 2016080799255caud with npm audit 4c48a77globalthis 14d9e97@es-shims/api 15d84bb34559b9[patch] remove unused AOs `698cef7`
[Deps] update es-abstract `6b45f15`
[Fix] avoid use of internal assertRecord helper from es-abstract `#5`
[Refactor] use IteratorStepValue `aa62d72`
IteratorStepValue aa62d72es-errors instead of get-intrinsic where possible 05a25aecall-bind, es-abstract, es-set-tostringtag, function-bind, get-intrinsic, has-property-descriptors, internal-slot, safe-array-concat 6aeee43aud, eslint-plugin-import, mock-property, npmignore, object-inspect, tape 0a21fdbcall-bind, es-errors, get-intrinsic, internal-slot 5b10625engines.node 1534039get-intrinsic 37da5f2has-tostringtag a7cac51[New] add Iterator.prototype shim `c4a6203`
[Deps] update es-abstract `477b123`
[Deps] add missing deps; add eslint-plugin-import `#3`
#3[Fix] avoid creating string wrapper objects with sloppy mode flatMap mappers `db16b34`
db16b34es-abstract f002147@ljharb/eslint-config, aud [42064e8`](https://github.com/es-shims/iterator-helpers/commit/42064e80e0cc37f5e4676c2133dacae7456e313f)896fd4f[Fix] iterator helpers are not a constructor `8a7f999`
8a7f999[patch] remove IsCallable check on NextMethod, deferring errors to callsite `bbb7efa`
[Refactor] use 2022 AO instead of 2015 AO `75ee5c4`
75ee5c4[Fix] flatMap: close the inner iterator when applicable `4dc94e0`
flatMap: close the inner iterator when applicable 4dc94e0[Fix] flatMap: properly handle yielded iterables `3a78767`
[Refactor] GetIteratorFlattenable: remove hint `781fc7c`
[Tests] add passing tests for 4240029 `c2082fe`
[Fix] validate arguments first `4240029`
[Fix] drop/filter/flatMap/map/take: properly IfAbruptCloseIterator `ff643a0`
drop/filter/flatMap/map/take: properly IfAbruptCloseIterator ff643a0NormalCompletion/ThrowCompletion instead of thunks 68fd937filter: IteratorClose needs to rethrow the error 200474ffilter: properly increment the counter 14aa2d8Iterator can not be newed or invoked directly 6fbd68eIterator.prototype should be non-writable 1080288es-abstract b7913da@es-shims/api 0071bed[Refactor] inline 2023 impls of Iterator AOs until es-abstract is published with them `b9c80c5`
[Fix] Iterator: throw when Iterator() is called without new `a6fc7e7`
Iterator: throw when Iterator() is called without new a6fc7e7Initial implementation, tests, readme `650713e`
Your coding agent can read these notes before it upgrades. Set up the MCP server →