| description( |
| "Tests that passing the global object to an array access that will arrayify to ArrayWithArrayStorage doesn't break things." |
| ); |
| |
| function foo(array) { |
| var result = 0; |
| for (var i = 0; i < array.length; ++i) |
| result += array[i]; |
| return result; |
| } |
| |
| noInline(foo); |
| |
| var array = [1, 2, 3]; |
| while (!dfgCompiled({f:foo})) |
| foo(array); |
| |
| array = [1, , 3]; |
| array.__defineGetter__(1, function() { return 6; }); |
| while (!dfgCompiled({f:foo, compiles:2})) |
| foo(array); |
| |
| var w = this; |
| w[0] = 1; |
| w.length = 1; |
| shouldBe("foo(w)", "NaN"); |