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// Flags: --allow-natives-syntax 6 7Object.defineProperty(Array.prototype, "1", { 8 get: function() { return "element 1"; }, 9 set: function(value) { } 10}); 11function test(array) { 12 array.shift(); 13 return array; 14} 15 16var result = test(["0",,2]); 17assertEquals(["element 1","element 1"], result); 18assertTrue(result.hasOwnProperty("0")); 19assertFalse(result.hasOwnProperty("1")); 20result = test([{},,{}]); 21assertEquals(["element 1","element 1"], result); 22assertTrue(result.hasOwnProperty("0")); 23assertFalse(result.hasOwnProperty("1")); 24%OptimizeFunctionOnNextCall(test); 25result = test([{},,0]); 26assertEquals(["element 1","element 1"], result); 27assertTrue(result.hasOwnProperty("0")); 28assertFalse(result.hasOwnProperty("1")); 29