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