forked from LeenkxTeam/Kmake
39 lines
815 B
JavaScript
39 lines
815 B
JavaScript
// Copyright 2024 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 --no-lazy-feedback-allocation
|
|
// Flags: --turbofan --turboshaft-string-concat-escape-analysis
|
|
|
|
class SomeError {}
|
|
|
|
function prettyPrinted(value) {
|
|
function prettyPrint() {
|
|
switch (typeof value) {}
|
|
}
|
|
return typeof value;
|
|
}
|
|
|
|
function fail(name_opt) {
|
|
throw new SomeError(() => name_opt);
|
|
}
|
|
|
|
function bar(expected) {
|
|
fail(expected + " +- " + prettyPrinted());
|
|
}
|
|
|
|
function foo() {
|
|
for (let i = 0; i < 10; i++) {
|
|
let x = i / 1257;
|
|
|
|
try { bar(0); } catch (e) {}
|
|
}
|
|
}
|
|
|
|
%PrepareFunctionForOptimization(bar);
|
|
%PrepareFunctionForOptimization(foo);
|
|
foo();
|
|
|
|
%OptimizeFunctionOnNextCall(foo);
|
|
foo();
|