Allen Wirfs-Brock wrote:
Well, they do for normal loop completions (according to the spec.) but not for breaks. I this the latter is a bug. In particular, I think it is pretty obvious that: eval(“ {0; while (true) {1; break}; 2}”)
(single quotes might avoid the smart-dumb transformation that happened here, which frustrated copy-paste into JS console :-|.)
should evaluate to 1
Why? Completion is on the 2; expression statement at the end. The break doesn't break from the block.
It is a little less obvious for: eval(“{0; L: while (true) {1; while (true) {2; break L; 3}; 4}; 5}”) but, I think that consistency with the first case requires this to evaluate to 2.
The 3; and 4; statements are not reached, but 5; is -- again something seems wrong with these examples.
/be _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss