blob: fcbe5350dd0040df793c7226a1d483da68fa6a6d [file] [log] [blame]
description(
"Tests that overflowing an integer in a loop and then only using it in an integer context produces a result that complies with double arithmetic."
);
function foo(a) {
var x = a;
// Make sure that this is the loop where we do OSR entry.
for (var i = 0; i < 100000; ++i)
x += 1;
// Now trigger overflow that is so severe that the floating point result would be different than the bigint result.
for (var i = 0; i < 160097152; ++i)
x += 2147483647;
return x | 0;
}
shouldBe("foo(0)", "-4094336");