Generator return() and exceptions

Andy Wingo wingo at
Wed Jul 23 09:51:38 PDT 2014

On Wed 23 Jul 2014 18:19, Allen Wirfs-Brock <allen at> writes:

> On Jul 23, 2014, at 1:25 AM, Andy Wingo wrote:
>     The TC39 notes do not record any discussion of return() causing an
>     exception to be thrown.
> In the latest ES6 draft for-of propagates any exceptions thrown by the
> call to return(). See
> forin-div-ofbodyevaluation step 3.k.ii.1-2 
> As a matter of design policy we rarely, if ever, just drop exceptions.

I probably didn't explain myself completely; apologies.  I meant that
the mechanism of iter.return() should be implemented by throwing an
exception (i.e., as if by "iter.throw(new StopIteration)") instead of
"returning" from the yield point.


More information about the es-discuss mailing list