bug684384.js (828B)
1 // Labeled break tests. 2 function f1() { 3 foo: 4 if ([1]) { 5 bar: 6 for (var i=0; i<100; i++) { 7 if (i > 60) 8 break foo; 9 } 10 assertEq(0, 1); 11 } 12 assertEq(i, 61); 13 return true; 14 } 15 assertEq(f1(), true); 16 17 // Label with no breaks. 18 function f2() { 19 foo: 20 if ([1]) { 21 for (var i=0; i<100; i++) { 22 } 23 } 24 assertEq(i, 100); 25 return true; 26 } 27 assertEq(f2(), true); 28 29 // No breaks and early return. 30 function f3() { 31 foo: { 32 if (true) { 33 for (var i=0; i<100; i++) { 34 } 35 } 36 return false; 37 } 38 assertEq(i, 100); 39 return true; 40 } 41 assertEq(f3(), false); 42 43 // Multiple breaks. 44 function f4() { 45 foo: { 46 if (true) { 47 for (var i=0; i<100; i++) 48 if (i > 70) 49 break foo; 50 if (i > 80) 51 break foo; 52 } 53 break foo; 54 } 55 assertEq(i, 71); 56 return true; 57 } 58 assertEq(f4(), true);