1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-21 23:55:07 +00:00

LibJS: Add Value::is_integer()

This commit is contained in:
Linus Groh 2020-05-08 16:15:04 +01:00 committed by Andreas Kling
parent 88738aefa3
commit 8137f40b73
2 changed files with 2 additions and 2 deletions

View file

@ -84,8 +84,7 @@ Value NumberConstructor::is_finite(Interpreter& interpreter)
Value NumberConstructor::is_integer(Interpreter& interpreter) Value NumberConstructor::is_integer(Interpreter& interpreter)
{ {
auto value = interpreter.argument(0); return Value(interpreter.argument(0).is_integer());
return Value(value.is_number() && (i32)value.as_double() == value.as_double());
} }
Value NumberConstructor::is_nan(Interpreter& interpreter) Value NumberConstructor::is_nan(Interpreter& interpreter)

View file

@ -60,6 +60,7 @@ public:
bool is_infinity() const { return is_number() && __builtin_isinf(as_double()); } bool is_infinity() const { return is_number() && __builtin_isinf(as_double()); }
bool is_positive_zero() const { return is_number() && 1.0 / as_double() == __builtin_huge_val(); } bool is_positive_zero() const { return is_number() && 1.0 / as_double() == __builtin_huge_val(); }
bool is_negative_zero() const { return is_number() && 1.0 / as_double() == -__builtin_huge_val(); } bool is_negative_zero() const { return is_number() && 1.0 / as_double() == -__builtin_huge_val(); }
bool is_integer() const { return is_finite_number() && (i32)as_double() == as_double(); }
bool is_finite_number() const bool is_finite_number() const
{ {
if (!is_number()) if (!is_number())