// Copyright 2016 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.
functiong(){return23}functionh(){return42}functionboom(o){o.g=h}functionf(osr_and_recurse){if(osr_and_recurse){for(vari=0;i<3;++i){if(i==1)%OptimizeOsr();}%OptimizeFunctionOnNextCall(f);f(false);// Trigger tier-up due to recursive call.boom(this);// Causes a deopt due to below dependency.varx=g();// Install dependency on the {g} function.returnx;}return65;}assertEquals(65,f(false));assertEquals(65,f(false));assertEquals(42,f(true));