forked from LeenkxTeam/Kmake
27 lines
640 B
JavaScript
27 lines
640 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-maglev-loop-peeling
|
|
|
|
let obj = { y: 19.5 };
|
|
obj.y = 3.3336; // make obj.y non-const
|
|
let arr = [-0.0, /* hole */, 2.5];
|
|
|
|
function foo(n) {
|
|
let v = arr[1];
|
|
for (let i = 0.5; i < n; i += 1) {
|
|
i += v; // Float64 use for {v} so that it gets untagged.
|
|
v = 40;
|
|
}
|
|
obj.y = v;
|
|
}
|
|
|
|
%PrepareFunctionForOptimization(foo);
|
|
foo(5);
|
|
assertEquals(40, obj.y);
|
|
|
|
%OptimizeFunctionOnNextCall(foo);
|
|
foo(0);
|
|
assertEquals(undefined, obj.y);
|