// 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-syntaxfunctionf1(a,i){returna[i]+0.5;}vararr=[,0.0,2.5];assertEquals(0.5,f1(arr,1));assertEquals(0.5,f1(arr,1));%OptimizeFunctionOnNextCall(f1);assertEquals(0.5,f1(arr,1));// Trick crankshaft into accepting feedback with the array prototype// map even though a call on that map was never made. optopush should// refuse to inline the push call based on the danger that it's modifying// the array prototype.varpush=Array.prototype.push;vararray_prototype=Array.prototype;functionoptopush(a){push.call(a,1);}functionfoo(){optopush(array_prototype);}optopush([]);optopush([]);optopush([]);%OptimizeFunctionOnNextCall(foo);foo();assertEquals(1.5,f1(arr,0));