Skip to content

Instantly share code, notes, and snippets.

@michaelficarra
Last active May 8, 2026 23:25
Show Gist options
  • Select an option

  • Save michaelficarra/34c47e1161b9ba2526ee197e1f5cb624 to your computer and use it in GitHub Desktop.

Select an option

Save michaelficarra/34c47e1161b9ba2526ee197e1f5cb624 to your computer and use it in GitHub Desktop.
iterator built-ins roadmap
  • Stage 4: iterator helpers MVP
  • Stage 4: iterator sequencing (Iterator.concat)
  • Stage 3: joint iteration (Iterator.zip, Iterator.zipKeyed)
  • Stage 2.7: iterator chunking (.chunks, .windows)
  • Stage 2.7: iterator includes (.includes)
  • Stage 2.7: iterator join (.join)
  • Stage 2: async iterator helpers MVP (AsyncIterator.prototype.*, Iterator.prototype.toAsync)
  • Stage 1: concurrency control (AsyncIterator.prototype.* integration, some form of cancellation)
  • Stage 1: unordered async iterator helpers (AsyncIterator.prototype.unordered, UnorderedAsyncIterator.prototype.*)
  • Stage 1: iterator unique
  • SOON: Builder/FromIterator protocol and Iterator.prototype.to/collect and built-in accumulators/collectors
  • SOON: a short-circuiting reduce via IteratorResult objects
  • MAYBE: .takeWhile, .dropWhile
  • MAYBE: a way to register a callback when the iterator is exhausted or closed (withCleanup?)
  • MAYBE: .scan: like reduce, but produces an iterator of all intermediate memos
  • MAYBE: Iterator.prototype.into = function (f) { return f(this) }
  • MAYBE: .tap/.tee/.peek
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment