Sfoglia il codice sorgente

LibJS: Add global isNaN() function

Andreas Kling 5 anni fa
parent
commit
04ced9e24a

+ 5 - 0
Libraries/LibJS/Runtime/GlobalObject.cpp

@@ -18,6 +18,11 @@ GlobalObject::GlobalObject()
         this_object->heap().collect_garbage();
         return js_undefined();
     });
+    put_native_function("isNaN", [](Object*, Vector<Value> arguments) -> Value {
+        if (arguments.size() < 1)
+            return js_undefined();
+        return Value(arguments[0].is_nan());
+    });
     put("Math", heap().allocate<MathObject>());
 }
 

+ 4 - 0
Libraries/LibJS/Tests/NaN-basic.js

@@ -3,6 +3,10 @@ function assert(x) { if (!x) throw 1; }
 try {
     var nan = undefined + 1;
     assert(nan + "" == "NaN");
+    assert(isNaN(nan) === true);
+    assert(isNaN(0) === false);
+    assert(isNaN(undefined) === false);
+    assert(isNaN(null) === false);
     console.log("PASS");
 } catch (e) {
     console.log("FAIL: " + e);