to-number-basic.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. try {
  2. assert(+false === 0);
  3. assert(-false === 0);
  4. assert(+true === 1);
  5. assert(-true === -1);
  6. assert(+null === 0);
  7. assert(-null === 0);
  8. assert(+[] === 0);
  9. assert(-[] === 0);
  10. assert(+[[[[[]]]]] === 0);
  11. assert(-[[[[[]]]]] === 0);
  12. assert(+[[[[[42]]]]] === 42);
  13. assert(-[[[[[42]]]]] === -42);
  14. assert(+"" === 0);
  15. assert(-"" === 0);
  16. assert(+"42" === 42);
  17. assert(-"42" === -42);
  18. assert(+42 === 42);
  19. assert(-42 === -42);
  20. assert(+1.23 === 1.23);
  21. assert(-1.23 === -1.23);
  22. // FIXME: returns NaN
  23. // assert(+"1.23" === 1.23)
  24. // assert(-"1.23" === -1.23)
  25. assert(+"Infinity" === Infinity);
  26. assert(+"+Infinity" === Infinity);
  27. assert(+"-Infinity" === -Infinity);
  28. assert(-"Infinity" === -Infinity);
  29. assert(-"+Infinity" === -Infinity);
  30. assert(-"-Infinity" === Infinity);
  31. assert(isNaN(+undefined));
  32. assert(isNaN(-undefined));
  33. assert(isNaN(+{}));
  34. assert(isNaN(-{}));
  35. assert(isNaN(+{a: 1}));
  36. assert(isNaN(-{a: 1}));
  37. assert(isNaN(+[1, 2, 3]));
  38. assert(isNaN(-[1, 2, 3]));
  39. assert(isNaN(+[[[["foo"]]]]));
  40. assert(isNaN(-[[[["foo"]]]]));
  41. assert(isNaN(+"foo"));
  42. assert(isNaN(-"foo"));
  43. console.log("PASS");
  44. } catch (e) {
  45. console.log("FAIL: " + e);
  46. }