On May 14, 2009, at 3:42 PM, Brendan Eich wrote:

Those hard stops kill all further activity within that event loop.
Once a universe has been destroyed, no further bad things can happen
in that universe.

There's always the next universe (new event starts another control flow). Life goes on, in the JS serial multiverse, and those finally clauses failed to run even though control abruptly left the lambda under the hypothesis.


Infinite loops don't kill their universe, so this case is similar but
different. As the halting problem teaches us, an infinite loop is
generally indistinguishable from a loop that hasn't terminated yet.
Since control flow has not yet escaped the loop, it hasn't yet
bypassed the finally, and so no invariants have yet been violated.

True enough, but see above.

This isn't entirely academic, since information leaks include termination channels.

And that previous universe ended, detectably. It's not as if the loop is still running in the lambda when the next event-flow little bang blooms into a universe, since there is a big fat shared heap (no quantum uncertainty obscuring inter-verse sharing!) accessible by which to detect mutations. If the iloop were incrementing a counter, it is guaranteed that the counter stopped before the new event-flow started.

No racing scripts; run-to-completion is the observable execution model (ignoring web workers, which are shared nothing in JS heap terms but may share effects in DOM storage, etc).

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to