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 |