Home | History | Annotate | Download | only in mjsunit
      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