nodejs/deps/v8/test/mjsunit/maglev/regress-1483146.js
Michaël Zasso d8c97e4857
deps: update V8 to 11.9.169.7
PR-URL: https://github.com/nodejs/node/pull/50115
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
2024-01-04 09:30:13 +01:00

48 lines
1.1 KiB
JavaScript

// Copyright 2023 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 --maglev --maglev-inlining
let result;
function dontOpt(x) {
result = x;
}
(function () {
prettyPrinted = function prettyPrinted(value) {
return value;
}
let maxExtraPrinting = 100;
prettyPrint = function (value, extra = false) {
let str = prettyPrinted(value);
if (extra && maxExtraPrinting-- <= 0) {
return;
}
dontOpt(str);
};
printExtra = function (value) {
prettyPrint(value, true);
};
})();
function empty() {}
let g;
var foo = function () {
printExtra();
g = empty();
printExtra((this instanceof Object));
};
%PrepareFunctionForOptimization(foo);
%PrepareFunctionForOptimization(printExtra);
%PrepareFunctionForOptimization(prettyPrint);
%PrepareFunctionForOptimization(prettyPrinted);
%PrepareFunctionForOptimization(empty);
foo();
assertEquals(true, result);
%OptimizeMaglevOnNextCall(foo);
foo();
assertEquals(true, result);