js/src/jit-test/tests/ion/bug684384.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:94f07b2a57db
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);

mercurial