| 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 --crankshaft --no-always-opt | 
|   6  |   6  | 
|   7 var v = 0; |   7 var v = 0; | 
|   8  |   8  | 
|   9 // Test that elements setters/getters on prototype chain set after the fact are |   9 // Test that elements setters/getters on prototype chain set after the fact are | 
|  10 // property detected and don't lead to overzealous optimization. |  10 // property detected and don't lead to overzealous optimization. | 
|  11 var my_array_proto = {}; |  11 var my_array_proto = {}; | 
|  12 my_array_proto.__proto__ = [].__proto__; |  12 my_array_proto.__proto__ = [].__proto__; | 
|  13  |  13  | 
|  14 function push_wrapper_2(array, value) { |  14 function push_wrapper_2(array, value) { | 
|  15   array.push(value); |  15   array.push(value); | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
|  33 // Defining accessor should deopt optimized push. |  33 // Defining accessor should deopt optimized push. | 
|  34 Object.defineProperty(my_array_proto, "3", { |  34 Object.defineProperty(my_array_proto, "3", { | 
|  35 get: function() { return "get " + v; }, |  35 get: function() { return "get " + v; }, | 
|  36 set: function(value) { v += value; } |  36 set: function(value) { v += value; } | 
|  37 }); |  37 }); | 
|  38 assertUnoptimized(push_wrapper_2); |  38 assertUnoptimized(push_wrapper_2); | 
|  39 push_wrapper_2(array, 99); |  39 push_wrapper_2(array, 99); | 
|  40 assertEquals(4, array.length); |  40 assertEquals(4, array.length); | 
|  41 assertEquals(99, v); |  41 assertEquals(99, v); | 
|  42 assertEquals("get 99", array[3]); |  42 assertEquals("get 99", array[3]); | 
| OLD | NEW |