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