Number.js 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. try {
  2. assert(Number.length === 1);
  3. assert(typeof Number() === "number");
  4. assert(typeof new Number() === "object");
  5. assert(Number() === 0);
  6. assert(new Number().valueOf() === 0);
  7. assert(Number("42") === 42);
  8. assert(new Number("42").valueOf() === 42);
  9. assert(Number(null) === 0);
  10. assert(new Number(null).valueOf() === 0);
  11. assert(Number(true) === 1);
  12. assert(new Number(true).valueOf() === 1);
  13. assert(Number("Infinity") === Infinity);
  14. assert(new Number("Infinity").valueOf() === Infinity);
  15. assert(Number("+Infinity") === Infinity);
  16. assert(new Number("+Infinity").valueOf() === Infinity);
  17. assert(Number("-Infinity") === -Infinity);
  18. assert(new Number("-Infinity").valueOf() === -Infinity);
  19. assert(isNaN(Number(undefined)));
  20. assert(isNaN(new Number(undefined).valueOf()));
  21. assert(isNaN(Number({})));
  22. assert(isNaN(new Number({}).valueOf()));
  23. assert(isNaN(Number({a: 1})));
  24. assert(isNaN(new Number({a: 1}).valueOf()));
  25. assert(isNaN(Number([1, 2, 3])));
  26. assert(isNaN(new Number([1, 2, 3]).valueOf()));
  27. assert(isNaN(Number("foo")));
  28. assert(isNaN(new Number("foo").valueOf()));
  29. console.log("PASS");
  30. } catch (e) {
  31. console.log("FAIL: " + e.message);
  32. }