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 5Object.defineProperty(Array.prototype, '0', { 6 get: function() { return false; }, 7}); 8var a = [1, 2, 3]; 9assertEquals(a, a.slice()); 10assertEquals([3], a.splice(2, 1)); 11 12a = [1, 2, 3]; 13a[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. 16a.__proto__ = null; 17assertEquals(a, Array.prototype.slice.call(a)); 18assertEquals([3], Array.prototype.splice.call(a, 2, 1)); 19