blob: 336b43d8d8ea00b76b6c3ce0ffdb3460f12b3483 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// 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);