Emily Bernier | d0a1eb7 | 2015-03-24 16:35:39 -0400 | [diff] [blame] | 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 |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | Object.defineProperty(Array.prototype, '0', { |
| 6 | get: function() { return false; }, |
| 7 | }); |
| 8 | var a = [1, 2, 3]; |
| 9 | assertEquals(a, a.slice()); |
| 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)); |