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