mirror of
https://github.com/nodejs/node.git
synced 2025-05-15 11:36:57 +00:00

PR-URL: https://github.com/nodejs/node/pull/52293 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
123 lines
2.0 KiB
JavaScript
123 lines
2.0 KiB
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: --const-tracking-let --allow-natives-syntax
|
|
// Flags: --turbofan --no-always-turbofan --maglev --no-stress-maglev
|
|
// Flags: --sparkplug --no-always-sparkplug --stress-ic
|
|
|
|
let a0 = 0;
|
|
let a1 = 0;
|
|
let a2 = 0;
|
|
let a3 = 0;
|
|
let a4 = 0;
|
|
let a5 = 0;
|
|
let a6 = 0;
|
|
let a7 = 0;
|
|
let a8 = 0;
|
|
let a9 = 0;
|
|
let a10 = 0;
|
|
let a11 = 0;
|
|
let a12 = 0;
|
|
let a13 = 0;
|
|
let a14 = 0;
|
|
let a15 = 0;
|
|
let a16 = 0;
|
|
let a17 = 0;
|
|
let a18 = 0;
|
|
let a19 = 0;
|
|
let a20 = 0;
|
|
let a21 = 0;
|
|
let a22 = 0;
|
|
let a23 = 0;
|
|
let a24 = 0;
|
|
let a25 = 0;
|
|
let a26 = 0;
|
|
let a27 = 0;
|
|
let a28 = 0;
|
|
let a29 = 0;
|
|
let a30 = 0;
|
|
let a31 = 0;
|
|
let a32 = 0;
|
|
let a33 = 0;
|
|
let a34 = 0;
|
|
let a35 = 0;
|
|
let a36 = 0;
|
|
let a37 = 0;
|
|
let a38 = 0;
|
|
let a39 = 0;
|
|
let a40 = 0;
|
|
let a41 = 0;
|
|
let a42 = 0;
|
|
let a43 = 0;
|
|
let a44 = 0;
|
|
let a45 = 0;
|
|
let a46 = 0;
|
|
let a47 = 0;
|
|
let a48 = 0;
|
|
let a49 = 0;
|
|
let a50 = 0;
|
|
let a51 = 0;
|
|
let a52 = 0;
|
|
let a53 = 0;
|
|
let a54 = 0;
|
|
let a55 = 0;
|
|
let a56 = 0;
|
|
let a57 = 0;
|
|
let a58 = 0;
|
|
let a59 = 0;
|
|
let a60 = 0;
|
|
let a61 = 0;
|
|
let a62 = 0;
|
|
let a63 = 0;
|
|
let a64 = 0;
|
|
let a65 = 0;
|
|
let a66 = 0;
|
|
let a67 = 0;
|
|
let a68 = 0;
|
|
let a69 = 0;
|
|
let a70 = 0;
|
|
let a71 = 0;
|
|
let a72 = 0;
|
|
let a73 = 0;
|
|
let a74 = 0;
|
|
let a75 = 0;
|
|
let a76 = 0;
|
|
let a77 = 0;
|
|
let a78 = 0;
|
|
let a79 = 0;
|
|
let a80 = 0;
|
|
let a81 = 0;
|
|
let a82 = 0;
|
|
let a83 = 0;
|
|
let a84 = 0;
|
|
let a85 = 0;
|
|
let a86 = 0;
|
|
let a87 = 0;
|
|
let a88 = 0;
|
|
let a89 = 0;
|
|
let a90 = 0;
|
|
let a91 = 0;
|
|
let a92 = 0;
|
|
let a93 = 0;
|
|
let a94 = 0;
|
|
let a95 = 0;
|
|
let a96 = 0;
|
|
let a97 = 0;
|
|
let a98 = 0;
|
|
let a99 = 0;
|
|
|
|
for (let i = 0; i < 100; ++i) {
|
|
// Use RuntimeEvaluateREPL so that set will use the StaGlobal bytecode.
|
|
%RuntimeEvaluateREPL('set = function set(newValue) {a' + i + ' = newValue;}');
|
|
%PrepareFunctionForOptimization(set);
|
|
set(0);
|
|
eval('read = function read() { return a' + i + ';}');
|
|
%PrepareFunctionForOptimization(read);
|
|
read();
|
|
%OptimizeFunctionOnNextCall(read);
|
|
assertEquals(0, read());
|
|
set(123);
|
|
assertEquals(123, read());
|
|
}
|