From 0399239e3fd647330e84b00e461587eaca1ffc74 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 30 Apr 2022 21:38:32 +0300 Subject: [PATCH] LibJS: Do not negate zero into negative zero in ToIntegerOrInfinity When the input value was in the range of [-1, 0] we would incorrectly negate the resulting integer, resulting in -0 instead of the expected 0 --- Userland/Libraries/LibJS/Runtime/Value.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/Value.cpp b/Userland/Libraries/LibJS/Runtime/Value.cpp index 5b10f0085a..50aed9af35 100644 --- a/Userland/Libraries/LibJS/Runtime/Value.cpp +++ b/Userland/Libraries/LibJS/Runtime/Value.cpp @@ -800,7 +800,7 @@ ThrowCompletionOr Value::to_integer_or_infinity(GlobalObject& global_obj if (number.is_infinity()) return number.as_double(); auto integer = floor(fabs(number.as_double())); - if (number.as_double() < 0) + if (number.as_double() < 0 && integer != 0) integer = -integer; return integer; }