LibJS: Use trunc instead of a static_cast<i64> in is_integral_number

This ensures we return true for integers that do not fit in an i64 aka,
above 9223372036854775807. (2**63 - 1)
This commit is contained in:
Idan Horowitz 2021-07-22 00:25:45 +03:00 committed by Linus Groh
parent 44c8e158c1
commit 7a33a5c9b5
Notes: sideshowbarker 2024-07-18 08:37:30 +09:00

View file

@ -72,7 +72,7 @@ public:
bool is_negative_infinity() const { return is_number() && __builtin_isinf_sign(as_double()) < 0; }
bool is_positive_zero() const { return is_number() && bit_cast<u64>(as_double()) == 0; }
bool is_negative_zero() const { return is_number() && bit_cast<u64>(as_double()) == NEGATIVE_ZERO_BITS; }
bool is_integral_number() const { return is_finite_number() && static_cast<i64>(as_double()) == as_double(); }
bool is_integral_number() const { return is_finite_number() && trunc(as_double()) == as_double(); }
bool is_finite_number() const
{
if (!is_number())