// 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. // Flags: --allow-natives-syntax --stress-inline "use strict"; function h() { var stack = new Error('boom').stack; print(stack); %DeoptimizeFunction(f1); %DeoptimizeFunction(f2); %DeoptimizeFunction(f3); %DeoptimizeFunction(g); %DeoptimizeFunction(h); return 1; } %NeverOptimizeFunction(h); function g(v) { return h(); } function f1() { var o = {}; o.__defineGetter__('p', g); o.p; }; %PrepareFunctionForOptimization(f1); f1(); f1(); %OptimizeFunctionOnNextCall(f1); f1(); function f2() { var o = {}; o.__defineSetter__('q', g); o.q = 1; }; %PrepareFunctionForOptimization(f2); f2(); f2(); %OptimizeFunctionOnNextCall(f2); f2(); function A() { return h(); } function f3() { new A(); }; %PrepareFunctionForOptimization(f3); f3(); f3(); %OptimizeFunctionOnNextCall(f3); f3();