blob: ae92f5462b9e3b013a99a72a8813c2048ef00b94 [file] [log] [blame]
function testBooleans(a, b) {
var res = 0;
if (a && b) res += 2;
if (b || a) res += 1;
return res;
}
assertEq(testBooleans(false, false), 0);
assertEq(testBooleans(false, true), 1);
assertEq(testBooleans(true, false), 1);
assertEq(testBooleans(true, true), 3);
function testShortCircuit(a) {
var b = 0;
++a && a++;
a || (b = 100);
return a + b;
}
assertEq(testShortCircuit(0), 2);
assertEq(testShortCircuit(-2), 100);
assertEq(testShortCircuit(-1), 100);
function testValues(a, b) {
if (a && b) return 2;
if (b || a) return 1;
return 0;
}
assertEq(testValues(false, true), 1);
assertEq(testValues("foo", 22), 2);
assertEq(testValues(null, ""), 0);
assertEq(testValues(Math.PI, undefined), 1);
assertEq(testValues(Math.abs, 2.2), 2);