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 Object.defineProperty(Array.prototype, "1", {
      8   get: function() { return "element 1"; },
      9   set: function(value) { }
     10 });
     11 function test(array) {
     12   array.shift();
     13   return array;
     14 }
     15 
     16 var result = test(["0",,2]);
     17 assertEquals(["element 1","element 1"], result);
     18 assertTrue(result.hasOwnProperty("0"));
     19 assertFalse(result.hasOwnProperty("1"));
     20 result = test([{},,{}]);
     21 assertEquals(["element 1","element 1"], result);
     22 assertTrue(result.hasOwnProperty("0"));
     23 assertFalse(result.hasOwnProperty("1"));
     24 %OptimizeFunctionOnNextCall(test);
     25 result = test([{},,0]);
     26 assertEquals(["element 1","element 1"], result);
     27 assertTrue(result.hasOwnProperty("0"));
     28 assertFalse(result.hasOwnProperty("1"));
     29