Creating and consuming custom iterators

medikoo at
Wed Aug 28 00:29:56 PDT 2013

In ES5 there is a concept of array-like, which while probably too relaxed is
really friendly for developers, as we can easily create custom array-like
abstractions and make it consumable to any generic functions, methods that
process array-likes.

In ES6 there's more advanced (and definitely better) iterators concept,
while I'm pretty excited by it, If read spec correctly I see it's quite
limited and not that usable.

1 There's no way I can create custom iterator abstraction (How can I can
define MyCustomIterator.prototype[@@iterator] method?).

2. There's no straightforward way to consume iterators in generic way, e.g.
I want to write function that works in similar way as Set constructor, and
accepts any iterator implementation. I don't have a means to call
iterator[@@iterator] method.

Please correct me if I'm wrong, but if it's the case, I think it's really
important to open that.

Maybe there should be Reflect.getIterator(obj) and
Reflect.defineIterator(obj, getIterator) for that?

View this message in context:
Sent from the Mozilla - ECMAScript 4 discussion mailing list archive at

More information about the es-discuss mailing list