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 7 function push_wrapper(array, value) { 8 array.push(value); 9 } 10 11 // Test that optimization of Array.push() for non-Arrays works correctly. 12 var object = { x : 8, length: 3 }; 13 object[18] = 5; 14 object.__proto__ = Array.prototype; 15 push_wrapper(object, 1); 16 push_wrapper(object, 1); 17 assertEquals(5, object.length); 18 %OptimizeFunctionOnNextCall(push_wrapper); 19 push_wrapper(object, 1); 20 push_wrapper(object, 1); 21 assertEquals(8, object.x); 22 assertEquals(7, object.length); 23