parseInt.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function verify(x,y)
  6. {
  7. if(x != y)
  8. {
  9. WScript.Echo("ERROR: " + x + " != " + y );
  10. }
  11. else
  12. {
  13. WScript.Echo(x + " == " + y);
  14. }
  15. }
  16. WScript.Echo(parseInt());
  17. WScript.Echo(parseInt(""));
  18. WScript.Echo(parseInt("a"));
  19. WScript.Echo(parseInt("0x"));
  20. WScript.Echo(parseInt("0xz"));
  21. WScript.Echo(parseInt(2, 2));
  22. WScript.Echo(parseInt(2,"blah"));
  23. WScript.Echo(parseInt("e10"));
  24. WScript.Echo(parseInt("100", 37));
  25. WScript.Echo(parseInt("100", 1));
  26. WScript.Echo(parseInt("100", -1));
  27. WScript.Echo(parseInt("100", -1000));
  28. WScript.Echo(parseInt("100", 1000));
  29. verify(0, parseInt("0"));
  30. verify(0, parseInt("0z"));
  31. verify(0, parseInt("-0"));
  32. verify(0, parseInt("-0z"));
  33. verify(0, parseInt(0));
  34. verify(0, parseInt(-0)); // -0 to "0" to 0
  35. // Verify again with 1 / 0 because 0 === -0 and we want to make sure that the sign is correct
  36. verify(1 / 0, 1 / parseInt("0"));
  37. verify(1 / -0, 1 / parseInt("-0"));
  38. verify(1 / 0, 1 / parseInt(0));
  39. verify(1 / 0, 1 / parseInt(-0)); // 1 / (-0 to "0" to 0) == +Infinity
  40. verify(1, parseInt("1"));
  41. verify(-1, parseInt("-1"));
  42. verify(-1, parseInt(" -1"));
  43. verify(-1, parseInt("\r\n\t\r\n \r\n\t-1"));
  44. verify(2, parseInt("2"));
  45. verify(-3, parseInt("-3"));
  46. verify(536870911, parseInt("536870911"));
  47. verify(536870912, parseInt("536870912"));
  48. verify(-536870912, parseInt("-536870912"));
  49. verify(-536870913, parseInt("-536870913"));
  50. verify(0x7fffffff, parseInt("2147483647"));
  51. verify(-0x80000000, parseInt("-2147483648"));
  52. verify(0x15, parseInt("0x15"));
  53. verify(0x15, parseInt("0X15"));
  54. verify(12, parseInt("12.5"));
  55. verify(128, parseInt("10000000", 2));
  56. verify(480815, parseInt("aAzZ", 36));
  57. verify(480815, parseInt("aAzZ", " 00036"));
  58. verify(13929, parseInt("bcY", new Number(35)));
  59. verify(16, parseInt("g", new String("17")));
  60. verify(0, parseInt("08")); // classic behavior
  61. verify(8, parseInt("010")); // classic behavior
  62. verify(8, parseInt(08));
  63. verify(8, parseInt(010));
  64. verify(0, parseInt("0x123", "10"));
  65. verify(291, parseInt("0x123"));
  66. verify(12, parseInt(new String("12")));
  67. verify(-12, parseInt(new Number(-12)));
  68. function isNegZero(n)
  69. {
  70. return ((n === 0) && (1/n === -Infinity))
  71. }
  72. var i = 0;
  73. var ni = -i;
  74. WScript.Echo(isNegZero(ni));
  75. WScript.Echo(isNegZero(parseInt(ni)));