summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Date/parse-single-number.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/Date/parse-single-number.js')
-rw-r--r--js/src/tests/non262/Date/parse-single-number.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/js/src/tests/non262/Date/parse-single-number.js b/js/src/tests/non262/Date/parse-single-number.js
new file mode 100644
index 0000000000..e28d6183cd
--- /dev/null
+++ b/js/src/tests/non262/Date/parse-single-number.js
@@ -0,0 +1,60 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+const accepted = {
+ "0": "2000-01-01T00:00:00",
+ "1": "2001-01-01T00:00:00",
+ "12": "2001-12-01T00:00:00",
+ "32": "2032-01-01T00:00:00",
+ "49": "2049-01-01T00:00:00",
+ "50": "1950-01-01T00:00:00",
+ "99": "1999-01-01T00:00:00",
+ "100": "0100-01-01T00:00:00",
+ "999": "0999-01-01T00:00:00",
+ "1000": "1000-01-01T00:00:00Z",
+ "1000-": "1000-01-01T00:00:00",
+ "20009": "+020009-01-01T00:00:00",
+ "+20009": "+020009-01-01T00:00:00",
+
+ // Rejecting e.g. S22 (see rejected patterns below) shouldn't
+ // reject mday directly after month name
+ "Sep26 1995": "1995-09-26T00:00:00",
+};
+const rejected = [
+ "S22",
+ "5C",
+ "Sep26 foo 1995",
+];
+
+for (const [test, expected] of Object.entries(accepted)) {
+ const testDate = new Date(test);
+ const expectedDate = new Date(expected);
+
+ assertEq(
+ false, isNaN(testDate),
+ `${test} should be accepted.`
+ );
+
+ assertEq(
+ testDate.getTime(), expectedDate.getTime(),
+ `"${test}" should be ${expectedDate} (got ${testDate}).`
+ );
+}
+
+for (let i = 13; i <= 31; ++i) {
+ assertEq(
+ true, isNaN(new Date(`${i}`)),
+ `"${i}" should be rejected.`
+ );
+}
+for (const reject of rejected) {
+ assertEq(
+ true, isNaN(new Date(reject)),
+ `"${reject}" should be rejected.`
+ );
+}
+
+if (typeof reportCompare === "function")
+ reportCompare(true, true);