| function test1() { |
| var dense = [1, 2, 3]; |
| var denseHoles = [1, , 3]; |
| var result = 0; |
| |
| for (var i = 0; i < 70; i++) { |
| if (i in dense) result += 1; |
| if (1 in dense) result += 2; |
| if (3 in dense) result += 3; |
| if (-1000 in dense) result += 4; |
| if (i in denseHoles) result += 5; |
| if (1 in denseHoles) result += 6; |
| } |
| |
| assertEq(result, 153); |
| } |
| test1(); |
| |
| function test2() { |
| var a = [1, 2, 3]; |
| |
| for (var i = 0; i < 70; i++) { |
| assertEq(-0 in a, true); |
| assertEq(Math.sqrt(4) in a, true); |
| assertEq(1.9 in a, false); |
| assertEq(NaN in a, false); |
| assertEq(Infinity in a, false); |
| } |
| } |
| test2(); |
| |
| function test3() { |
| var a = [1, , 3]; |
| |
| for (var i = 0; i < 70; i++) { |
| if (i == 60) |
| Object.prototype[1] = null; |
| assertEq(1 in a, i >= 60); |
| } |
| } |
| test3(); |