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