to-number-basic.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. load("test-common.js");
  2. try {
  3. assert(+false === 0);
  4. assert(-false === 0);
  5. assert(+true === 1);
  6. assert(-true === -1);
  7. assert(+null === 0);
  8. assert(-null === 0);
  9. assert(+[] === 0);
  10. assert(-[] === 0);
  11. assert(+[,] === 0);
  12. assert(-[,] === 0);
  13. assert(+[null] === 0);
  14. assert(-[null] === 0);
  15. assert(+[undefined] === 0);
  16. assert(-[undefined] === 0);
  17. assert(+[[[[[]]]]] === 0);
  18. assert(-[[[[[]]]]] === 0);
  19. assert(+[[[[[42]]]]] === 42);
  20. assert(-[[[[[42]]]]] === -42);
  21. assert(+"" === 0);
  22. assert(-"" === 0);
  23. assert(+"42" === 42);
  24. assert(-"42" === -42);
  25. assert(+42 === 42);
  26. assert(-42 === -42);
  27. assert(+1.23 === 1.23);
  28. assert(-1.23 === -1.23);
  29. assert(+"1.23" === 1.23)
  30. assert(-"1.23" === -1.23)
  31. assert(+"Infinity" === Infinity);
  32. assert(+"+Infinity" === Infinity);
  33. assert(+"-Infinity" === -Infinity);
  34. assert(-"Infinity" === -Infinity);
  35. assert(-"+Infinity" === -Infinity);
  36. assert(-"-Infinity" === Infinity);
  37. assert(+" \r \t \n " === 0);
  38. assert(+" \n \t Infinity \r " === Infinity);
  39. assert(+"\r \n1.23 \t\t\t \n" === 1.23);
  40. assert(isNaN(+undefined));
  41. assert(isNaN(-undefined));
  42. assert(isNaN(+{}));
  43. assert(isNaN(-{}));
  44. assert(isNaN(+{ a: 1 }));
  45. assert(isNaN(-{ a: 1 }));
  46. assert(isNaN(+[, , ,]));
  47. assert(isNaN(-[, , ,]));
  48. assert(isNaN(+[undefined, undefined]));
  49. assert(isNaN(-[undefined, undefined]));
  50. assert(isNaN(+[1, 2, 3]));
  51. assert(isNaN(-[1, 2, 3]));
  52. assert(isNaN(+[[[["foo"]]]]));
  53. assert(isNaN(-[[[["foo"]]]]));
  54. assert(isNaN(+"foo"));
  55. assert(isNaN(-"foo"));
  56. console.log("PASS");
  57. } catch (e) {
  58. console.log("FAIL: " + e);
  59. }