// Test strict-equality with a constant boolean. function test1() { var a = [{}, false, true, 0]; var res = 0; for (var i=0; i<100; i++) { if (a[i % 4] === false) res += 1; } assertEq(res, 25); res = 0; for (var i=0; i<100; i++) { if (true !== a[i % 4]) res += 1; } assertEq(res, 75); res = 0; for (var i=0; i<100; i++) { res += (a[i % 4] === true); } assertEq(res, 25); res = 0; for (var i=0; i<100; i++) { res += (false !== a[i % 4]); } assertEq(res, 75); } test1(); // Test strict-equality with non-constant boolean. var TRUE = true; var FALSE = false; function test2() { var a = [{}, false, true, 0]; var res = 0; for (var i=0; i<100; i++) { if (a[i % 4] === FALSE) res += 1; } assertEq(res, 25); res = 0; for (var i=0; i<100; i++) { if (TRUE !== a[i % 4]) res += 1; } assertEq(res, 75); res = 0; for (var i=0; i<100; i++) { res += (a[i % 4] === TRUE); } assertEq(res, 25); res = 0; for (var i=0; i<100; i++) { res += (FALSE !== a[i % 4]); } assertEq(res, 75); } test2();