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

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:27a4b26f9387
1 function testBooleans(a, b) {
2 var res = 0;
3 if (a && b) res += 2;
4 if (b || a) res += 1;
5 return res;
6 }
7 assertEq(testBooleans(false, false), 0);
8 assertEq(testBooleans(false, true), 1);
9 assertEq(testBooleans(true, false), 1);
10 assertEq(testBooleans(true, true), 3);
11
12 function testShortCircuit(a) {
13 var b = 0;
14 ++a && a++;
15 a || (b = 100);
16 return a + b;
17 }
18 assertEq(testShortCircuit(0), 2);
19 assertEq(testShortCircuit(-2), 100);
20 assertEq(testShortCircuit(-1), 100);
21
22 function testValues(a, b) {
23 if (a && b) return 2;
24 if (b || a) return 1;
25 return 0;
26 }
27 assertEq(testValues(false, true), 1);
28 assertEq(testValues("foo", 22), 2);
29 assertEq(testValues(null, ""), 0);
30 assertEq(testValues(Math.PI, undefined), 1);
31 assertEq(testValues(Math.abs, 2.2), 2);

mercurial