// Copyright 2015 the V8 project authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.// Flags: --allow-natives-syntax
// --nostress-opt is specified because the test corrupts the "pristine"// array prototype chain by storing an element, and this is tracked// per-isolate. A subsequent stress run would send the load generic,// and no more deoptimizations of foo would occur.functionfoo(a,i){returna[i];}vara=['one',,'three'];foo(a,0);foo(a,0);foo(a,0);%OptimizeFunctionOnNextCall(foo);assertEquals(undefined,foo(a,1));assertOptimized(foo);// Whereas if we disrupt the prototype chain...Array.prototype[1]='cow';assertEquals('cow',foo(a,1));assertUnoptimized(foo);