PR-URL: https://github.com/nodejs/node/pull/51362 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
26 lines
778 B
JavaScript
26 lines
778 B
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: --turboshaft-assert-types --allow-natives-syntax
|
|
|
|
function test(x) {
|
|
let right = 5.0 + 10**308;
|
|
right = Math.min(right, x%x+right);
|
|
right = Math.max(1, right); // Float64[1, 1e+308]|NaN
|
|
|
|
let left = 5.0;
|
|
left = Math.min(left, x%x+left);
|
|
left = Math.min(left-1, left);
|
|
// "Flip range"
|
|
left = 4.0 - left;
|
|
left = left - 2.00084e-18; // Float64[-inf, inf]|NaN ACTUAL: -2.00084e-18
|
|
result = left / right; // Float64[-inf, inf]|NaN ACTUAL: ***-0***
|
|
return result;
|
|
}
|
|
|
|
%PrepareFunctionForOptimization(test);
|
|
test(true);
|
|
%OptimizeFunctionOnNextCall(test);
|
|
assertEquals(-0, test(true));
|