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