testInArray.js (886B)
1 function test1() { 2 var dense = [1, 2, 3]; 3 var denseHoles = [1, , 3]; 4 var result = 0; 5 6 for (var i = 0; i < 70; i++) { 7 if (i in dense) result += 1; 8 if (1 in dense) result += 2; 9 if (3 in dense) result += 3; 10 if (-1000 in dense) result += 4; 11 if (i in denseHoles) result += 5; 12 if (1 in denseHoles) result += 6; 13 } 14 15 assertEq(result, 153); 16 } 17 test1(); 18 19 function test2() { 20 var a = [1, 2, 3]; 21 22 for (var i = 0; i < 70; i++) { 23 assertEq(-0 in a, true); 24 assertEq(Math.sqrt(4) in a, true); 25 assertEq(1.9 in a, false); 26 assertEq(NaN in a, false); 27 assertEq(Infinity in a, false); 28 } 29 } 30 test2(); 31 32 function test3() { 33 var a = [1, , 3]; 34 35 for (var i = 0; i < 70; i++) { 36 if (i == 60) 37 Object.prototype[1] = null; 38 assertEq(1 in a, i >= 60); 39 } 40 } 41 test3();