blob: e18605c57745fd2e86c224ba973b6b9382a58069 [file] [log] [blame]
// 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();