From 10f56166e5f5b4c7ed09fddc643505ca5d759013 Mon Sep 17 00:00:00 2001 From: sin-ack Date: Thu, 17 Jun 2021 11:18:53 +0000 Subject: [PATCH] LibJS: Cast to i64 for is_integral_number This fixes the built-ins/Number/isInteger/integers.js test. 9007199254740991 is still an integer, though not a safe one. --- Userland/Libraries/LibJS/Runtime/Value.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/Value.h b/Userland/Libraries/LibJS/Runtime/Value.h index 09eca1530b..50fdfaec63 100644 --- a/Userland/Libraries/LibJS/Runtime/Value.h +++ b/Userland/Libraries/LibJS/Runtime/Value.h @@ -73,7 +73,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(as_double()) == 0; } bool is_negative_zero() const { return is_number() && bit_cast(as_double()) == NEGATIVE_ZERO_BITS; } - bool is_integral_number() const { return is_finite_number() && (i32)as_double() == as_double(); } + bool is_integral_number() const { return is_finite_number() && static_cast(as_double()) == as_double(); } bool is_finite_number() const { if (!is_number())