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

Reply via email to