Re: Why can’t for-of be applied to iterators?

Andrea Giammarchi andrea.giammarchi at
Tue Jun 11 10:22:43 PDT 2013

I believe Iterator should be an interface and not a class so I could extend
Array or ArrayLike implementing Iterator, when/if necessary, in order to
have a for/of compatible class.

We don't have interfaces ... I know, we could have mixins though,
compatible with @@things too.

My 2 cents

On Tue, Jun 11, 2013 at 9:41 AM, Brandon Benvie <bbenvie at> wrote:

> On 6/11/2013 5:50 AM, Tab Atkins Jr. wrote:
>> On Tue, Jun 11, 2013 at 2:08 AM, Axel Rauschmayer <axel at>
>> wrote:
>>> On the other hand, turning every iterator into an iterable puts the
>>> burden
>>> on people implementing iterators: they have to implement the iterable
>>> interface.
>> That's... not really a burden.  It's literally just adding an
>> @@iterator method whose body is "return this;".  It's the right place
>> to put the burden, too - manual iterator authors are much, much fewer
>> than for-of users.
> It may be worth noting that, while it hasn't made it into the ES6 spec
> (yet?), the iterators strawman [1] (and modules_standard strawman [2]) had
> an `Iterator` class that all the builtin iterators (Map, Set, Generator,
> etc.) inherited from who's prototype had @@iterator built in. So usually
> the only burden for iterator authors was to create a class that inherited
> from Iterator.
>     import { Iterator } from '@iter';
>     class MyIterator extends Iterator { /*...*/  }
> [1]**doku.php?id=harmony:iterators<>
> [2]**doku.php?id=harmony:modules_**standard<>
> ______________________________**_________________
> es-discuss mailing list
> es-discuss at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list