1 // Copyright 2016 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: --harmony-tailcalls --allow-natives-syntax 6 7 "use strict"; 8 9 function deopt_function(func) { 10 %DeoptimizeFunction(func); 11 } 12 13 function f(x) { 14 return deopt_function(h); 15 } 16 17 function g(x) { 18 return f(x, 1); 19 } 20 21 function h(x) { 22 g(x, 1); 23 } 24 25 %SetForceInlineFlag(g); 26 %SetForceInlineFlag(f); 27 %NeverOptimizeFunction(deopt_function); 28 29 h(1); 30 h(1); 31 %OptimizeFunctionOnNextCall(h); 32 h(1); 33