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

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:68d235f4c27d
1 // Test strict-equality with a constant boolean.
2 function test1() {
3 var a = [{}, false, true, 0];
4 var res = 0;
5
6 for (var i=0; i<100; i++) {
7 if (a[i % 4] === false)
8 res += 1;
9 }
10 assertEq(res, 25);
11
12 res = 0;
13 for (var i=0; i<100; i++) {
14 if (true !== a[i % 4])
15 res += 1;
16 }
17 assertEq(res, 75);
18
19 res = 0;
20 for (var i=0; i<100; i++) {
21 res += (a[i % 4] === true);
22 }
23 assertEq(res, 25);
24
25 res = 0;
26 for (var i=0; i<100; i++) {
27 res += (false !== a[i % 4]);
28 }
29 assertEq(res, 75);
30 }
31 test1();
32
33 // Test strict-equality with non-constant boolean.
34 var TRUE = true;
35 var FALSE = false;
36
37 function test2() {
38 var a = [{}, false, true, 0];
39 var res = 0;
40
41 for (var i=0; i<100; i++) {
42 if (a[i % 4] === FALSE)
43 res += 1;
44 }
45 assertEq(res, 25);
46
47 res = 0;
48 for (var i=0; i<100; i++) {
49 if (TRUE !== a[i % 4])
50 res += 1;
51 }
52 assertEq(res, 75);
53
54 res = 0;
55 for (var i=0; i<100; i++) {
56 res += (a[i % 4] === TRUE);
57 }
58 assertEq(res, 25);
59
60 res = 0;
61 for (var i=0; i<100; i++) {
62 res += (FALSE !== a[i % 4]);
63 }
64 assertEq(res, 75);
65 }
66 test2();

mercurial