Frankie Bagnardi (2015-03-30T19:24:22.000Z)
First, you shouldn’t assume this would be based on the Symbol.iterator
protocol.

Would Object.create(null, {[Symbol.iterator]: value: ...}) work as it does
in for..of?

It seems like the main problem would be infinite sequences. That means
either infinite loops (ugh), or the language/user setting an arbitrary
number of max values to check (ew).

If I do have an arbitrary iterable, I need to easily create something I can
pass to for..of with if (x of fn(xs)) where fn is provided by ecmascript.
​


On Mon, Mar 30, 2015 at 12:02 PM, Brendan Eich <brendan at mozilla.org> wrote:

> Michał Wadas wrote:
>
>> First possible problem - "of" used in if statement can put iterator in
>> unexpected state or result in arbitrary side effects.
>>
>
> What iterator?
>
> First, you shouldn't assume this would be based on the Symbol.iterator
> protocol. I wrote something like @@hasInstance for instanceof was the
> precedent to follow.
>
> Second, the iteration protocol would require exhaustively searching for
> values. Side effects of iteration are the least worry!
>
> Finally, even if the iteration protocol were used, there would be no
> shared/reused iterator. You get a fresh one from well-implemented iterables.
>
>
> /be
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150330/0f5120af/attachment.html>
forbes at lindesay.co.uk (2015-03-31T23:23:31.883Z)
> First, you shouldn’t assume this would be based on the Symbol.iterator
protocol.

Would `Object.create(null, {[Symbol.iterator]: value: ...})` work as it does
in `for..of`?

It seems like the main problem would be infinite sequences. That means
either infinite loops (ugh), or the language/user setting an arbitrary
number of max values to check (ew).

If I do have an arbitrary iterable, I need to easily create something I can
pass to `for..of` with `if (x of fn(xs))` where fn is provided by ecmascript.