v8/test/mjsunit/regress/regress-1154961.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

43 lines
830 B
JavaScript
Raw Normal View History

// Copyright 2020 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 --turboprop --stack-size=100
function runNearStackLimit(f) {
function t() {
try {
return t();
} catch (e) {
return f();
}
}
return t();
}
function baz(f) {
return [[f(1)], 1, 2, 3, 4, 5, 6, 7, 8];
}
function foo(__v_3) {
try {
var arr = baz(__v_3);
} catch (e) {}
try {
for (var i = 0; i < arr.length; i++) {
function bar() {
return arr[i];
}
try {
throw e;
} catch (e) {}
}
} catch (e) {}
}
%PrepareFunctionForOptimization(foo);
foo(a => a);
foo(a => a);
%OptimizeFunctionOnNextCall(foo);
runNearStackLimit(() => { foo(a => a); });