I'm not concerned about manually added .return methods, nor manual calls to
.return methods, though perhaps I should be. If this is a concern, we could
solve it by using an @return symbol in ES7 rather than a string name.
Neither am I concerned about system iterators, assuming that none of the
system iterators needs a .return method, which depends on Andreas' response
to my question.

Rather, I am concerned specifically about the interaction of for/of and
generators, even in the absence of any finally clauses in the generator
code. If the for/of exits early, under this proposal, the generator will be
put into a non-resumable state. In current ES6, the generator is resumable.
If ES6 ships with the generators resumable under these conditions, I doubt
we will dare make them non-resumable in ES7.



On Wed, Apr 30, 2014 at 7:26 AM, C. Scott Ananian <ecmascr...@cscott.net>wrote:

> Domenic: the argument against is that changing the semantics of `for of`
> -- and all of the standard library methods, in the case of exceptional exit
> -- would result in a user-visible change to the state of the iterator.
>  That is, the iterator would not be closed, whereas ES6 as it stands now
> would let you continue iteration.
>
> The various proposed deferrals don't prevent the user from observing a
> different iterator state.
>
> The only working deferral I can think of is to remove `for of` from the
> spec entirely, and prevent most methods from taking `Iterators` as
> arguments (since the completion state of the `Iterator` would change in
> ES7).  You might be able to get away with taking `Iterable`s as arguments,
> even though the user could (for example) abuse the `Iterable` interface to
> return a singleton `Iterator` and thus observe its state.  But they'd have
> to work hard to subvert the spec that way.  This 'deferral' would be a huge
> change to the spec, but once would expect most implementors to ignore the
> neutered ES6 spec and just implement ES7 iterators.
>   --scott
> ​
>



-- 
    Cheers,
    --MarkM
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to