bug766218.js (1234B)
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();