diff --git a/Userland/Libraries/LibJS/Runtime/Value.cpp b/Userland/Libraries/LibJS/Runtime/Value.cpp index 76c6d4cc41..f2336f51cb 100644 --- a/Userland/Libraries/LibJS/Runtime/Value.cpp +++ b/Userland/Libraries/LibJS/Runtime/Value.cpp @@ -684,6 +684,8 @@ u16 Value::to_u16(GlobalObject& global_object) const if (signbit(value)) int_val = -int_val; auto int16bit = fmod(int_val, NumericLimits::max() + 1.0); + if (int16bit < 0) + int16bit += NumericLimits::max() + 1.0; return static_cast(int16bit); } @@ -720,6 +722,8 @@ u8 Value::to_u8(GlobalObject& global_object) const if (signbit(value)) int_val = -int_val; auto int8bit = fmod(int_val, NumericLimits::max() + 1.0); + if (int8bit < 0) + int8bit += NumericLimits::max() + 1.0; return static_cast(int8bit); }