April 10 2014 Meeting Notes

Brendan Eich brendan at mozilla.org
Sat Apr 26 14:52:22 PDT 2014


Mark S. Miller wrote:
> Regarding the points:
>
> #1 yes, we cannot provide one that's reliable, so let's not claim that 
> it is reliable.

Indeed it is not safe, even excluding yield, to assume finallys run in 
browser contexts, unless you can prove termination of trys (which is 
hard, right? Halting problem and all that).

> #2 yes it does. I acknowledge that this is a genuine cost.

I think I can make your case stronger: without |return| one cannot be 
sure a generator iterator |it| parked at a yield won't resume some time 
later. To ensure that it is really "done", call it.return(). Might this 
be important for reasoning about security?

BTW, return() should be idempotent. Is it?

> #3 for those rare cases where it is inappropriate, like this example, 
> better not to use a for/of anyway to make the unusualness of this 
> code's purpose more explicit.

Definitely -- given the implicit @@iterator call from (among other 
places) for-of constructs, it's best with for-of loops to avoid any 
reuse of the iterator later. Such hinky multi-loop consumption of a 
single iterator should be considered bad style. One can still do it, of 
course.

/be


More information about the es-discuss mailing list