dateutc.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 write(v) { WScript.Echo(v + ""); }
  6. var d;
  7. d = Date.UTC("1974"); write(d);
  8. d = Date.UTC(1974); write(d);
  9. d = Date.UTC(1974, 9); write(d);
  10. d = Date.UTC(1974, 9, 24); write(d);
  11. d = Date.UTC(1974, 9, 24, 0); write(d);
  12. d = Date.UTC(1974, 9, 24, 0, 20); write(d);
  13. d = Date.UTC(1974, 9, 24, 0, 20, 30); write(d);
  14. d = Date.UTC(1974, 9, 24, 0, 20, 30, 40); write(d);
  15. d = Date.UTC(1974, 9, 24, 0, 20, 30, 40, 50); write(d);
  16. d = Date.UTC(1, 9, 24, 0, 20, 30, 40); write(d);
  17. d = Date.UTC(74, 9, 24, 0, 20, 30, 40, 50); write(d);
  18. d = Date.UTC("hello"); write(d);
  19. d = Date.UTC(); write(d);
  20. function assert(p, message) {
  21. if (!message) {
  22. message = 'assert(true)';
  23. }
  24. if (p) {
  25. console.log('PASS');
  26. } else {
  27. console.log(`FAIL: ${message}`);
  28. }
  29. }
  30. assert(isNaN(Date.UTC()), "expected: Date.UTC() is NaN");
  31. assert(!isNaN(Date.UTC(2017)), "expected: Date.UTC(2017) is not NaN");
  32. assert(!isNaN(Date.UTC(2017, 0)), "expected: Date.UTC(2017, 0) is not NaN;");
  33. assert(!isNaN(Date.UTC(2017, 0, 1)), "expected: Date.UTC(2017, 0, 1) is not NaN;");
  34. assert(isNaN(Date.UTC(2017, undefined)), "expected: Date.UTC(2017, undefined) is NaN");
  35. assert(Date.UTC(2017) === Date.UTC(2017, 0), "expected: Date.UTC(2017) === Date.UTC(2017, 0)");
  36. assert(Date.UTC(2017, 0) === Date.UTC(2017, 0, 1), "expected: Date.UTC(2017, 0) === Date.UTC(2017, 0, 1)");
  37. // Date.UTC should return NaN if the time value is larger than 8.64*10^15:
  38. assert(isNaN(Date.UTC(2001, 1, 5e+9)), "expected: Date.UTC(2001, 1, 5e+9) is NaN");
  39. assert(isNaN(Date.UTC(2001, 1e+7, 5)), "expected: Date.UTC(2001, 1e+7, 5) is NaN");
  40. assert(isNaN(Date.UTC(2001000, 1, 5)), "expected: Date.UTC(2001000, 1, 5) is NaN");
  41. assert(isNaN(Date.UTC(2001, 1, Number.MAX_VALUE)), "expected: Date.UTC(2001, 1, Number.MAX_VALUE) is NaN");
  42. assert(isNaN(Date.UTC(2001, 1, Number.MAX_VALUE / 2e+9)), "expected: Date.UTC(2001, 1, Number.MAX_VALUE/2e+9) is NaN");
  43. try {
  44. Date.UTC({ valueOf: function() { throw "hey!" } });
  45. console.log("FAIL: expected: throws");
  46. } catch (e) {
  47. if (e.toString() === "hey!") {
  48. console.log("PASS");
  49. } else {
  50. console.log("expected: e.toString() === 'hey!'");
  51. }
  52. }
  53. try {
  54. Date.UTC({ valueOf: function() { throw "hey!" } }, 0);
  55. console.log("FAIL: expected: throws");
  56. } catch (e) {
  57. if (e.toString() === "hey!") {
  58. console.log("PASS");
  59. } else {
  60. console.log("expected: e.toString() === 'hey!'");
  61. }
  62. }
  63. try {
  64. Date.UTC({ valueOf: function() { throw "hey!" } }, 0, 1);
  65. console.log("FAIL: expected: throws");
  66. } catch (e) {
  67. if (e.toString() === "hey!") {
  68. console.log("PASS");
  69. } else {
  70. console.log("expected: e.toString() === 'hey!'");
  71. }
  72. }