mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:27:43 +00:00
LibJS: Implement Number.isNaN()
Like the global isNaN() without the number coercion.
This commit is contained in:
parent
c350f5ae67
commit
7bd6b58b29
4 changed files with 38 additions and 2 deletions
|
@ -138,8 +138,7 @@ Value GlobalObject::gc(Interpreter& interpreter)
|
|||
|
||||
Value GlobalObject::is_nan(Interpreter& interpreter)
|
||||
{
|
||||
auto value = interpreter.argument(0).to_number();
|
||||
return Value(value.is_nan());
|
||||
return Value(interpreter.argument(0).to_number().is_nan());
|
||||
}
|
||||
|
||||
Value GlobalObject::is_finite(Interpreter& interpreter)
|
||||
|
|
|
@ -41,6 +41,7 @@ NumberConstructor::NumberConstructor()
|
|||
: NativeFunction("Number", *interpreter().global_object().function_prototype())
|
||||
{
|
||||
put_native_function("isFinite", is_finite, 1);
|
||||
put_native_function("isNaN", is_nan, 1);
|
||||
put_native_function("isSafeInteger", is_safe_integer, 1);
|
||||
|
||||
put("prototype", interpreter().global_object().number_prototype());
|
||||
|
@ -79,6 +80,11 @@ Value NumberConstructor::is_finite(Interpreter& interpreter)
|
|||
return Value(interpreter.argument(0).is_finite_number());
|
||||
}
|
||||
|
||||
Value NumberConstructor::is_nan(Interpreter& interpreter)
|
||||
{
|
||||
return Value(interpreter.argument(0).is_nan());
|
||||
}
|
||||
|
||||
Value NumberConstructor::is_safe_integer(Interpreter& interpreter)
|
||||
{
|
||||
if (!interpreter.argument(0).is_number())
|
||||
|
|
|
@ -43,6 +43,7 @@ private:
|
|||
virtual const char* class_name() const override { return "NumberConstructor"; }
|
||||
|
||||
static Value is_finite(Interpreter&);
|
||||
static Value is_nan(Interpreter&);
|
||||
static Value is_safe_integer(Interpreter&);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue