OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 Object.defineProperty(Array.prototype, '0', { | 5 Object.defineProperty(Array.prototype, '0', { |
6 get: function() { return false; }, | 6 get: function() { return false; }, |
7 }); | 7 }); |
8 var a = [1, 2, 3]; | 8 var a = [1, 2, 3]; |
9 assertEquals(a, a.slice()); | 9 assertEquals(a, a.slice()); |
10 assertEquals([3], a.splice(2, 1)); | 10 assertEquals([3], a.splice(2, 1)); |
| 11 |
| 12 a = [1, 2, 3]; |
| 13 a[0xffff] = 4; |
| 14 // nulling the prototype lets us stay in the sparse case; otherwise the |
| 15 // getter on Array.prototype would force us into the non-sparse code. |
| 16 a.__proto__ = null; |
| 17 assertEquals(a, Array.prototype.slice.call(a)); |
| 18 assertEquals([3], Array.prototype.splice.call(a, 2, 1)); |
OLD | NEW |