summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Temporal/PlainDateTime/from/limits.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/Temporal/PlainDateTime/from/limits.js')
-rw-r--r--js/src/tests/test262/built-ins/Temporal/PlainDateTime/from/limits.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Temporal/PlainDateTime/from/limits.js b/js/src/tests/test262/built-ins/Temporal/PlainDateTime/from/limits.js
new file mode 100644
index 0000000000..af997c2688
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Temporal/PlainDateTime/from/limits.js
@@ -0,0 +1,73 @@
+// |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
+// Copyright (C) 2022 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-temporal.plaindatetime.from
+description: Checking limits of representable PlainDateTime
+features: [Temporal]
+includes: [temporalHelpers.js]
+---*/
+
+["reject", "constrain"].forEach((overflow) => {
+ assert.throws(
+ RangeError,
+ () => Temporal.PlainDateTime.from({ year: -271821, month: 4, day: 19 }, { overflow }),
+ `negative out of bounds (plain object, overflow = ${overflow})`
+ );
+ assert.throws(
+ RangeError,
+ () => Temporal.PlainDateTime.from({ year: 275760, month: 9, day: 14 }, { overflow }),
+ `positive out of bounds (plain object, overflow = ${overflow})`
+ );
+});
+
+TemporalHelpers.assertPlainDateTime(
+ Temporal.PlainDateTime.from({ year: -271821, month: 4, day: 19, nanosecond: 1 }),
+ -271821, 4, "M04", 19, 0, 0, 0, 0, 0, 1,
+ "construct from property bag (negative boundary)"
+);
+
+TemporalHelpers.assertPlainDateTime(
+ Temporal.PlainDateTime.from(
+ {
+ year: 275760,
+ month: 9,
+ day: 13,
+ hour: 23,
+ minute: 59,
+ second: 59,
+ millisecond: 999,
+ microsecond: 999,
+ nanosecond: 999
+ }
+ ),
+ 275760, 9, "M09", 13, 23, 59, 59, 999, 999, 999,
+ "construct from property bag (positive boundary)"
+);
+
+assert.throws(
+ RangeError,
+ () => Temporal.PlainDateTime.from("-271821-04-19T00:00"),
+ "out-of-bounds ISO string (negative case)"
+);
+
+assert.throws(
+ RangeError,
+ () => Temporal.PlainDateTime.from("+275760-09-14T00:00"),
+ "out-of-bounds ISO string (positive case)"
+);
+
+TemporalHelpers.assertPlainDateTime(
+ Temporal.PlainDateTime.from("-271821-04-19T00:00:00.000000001"),
+ -271821, 4, "M04", 19, 0, 0, 0, 0, 0, 1,
+ "boundary ISO string (negative case)"
+);
+
+TemporalHelpers.assertPlainDateTime(
+ Temporal.PlainDateTime.from("+275760-09-13T23:59:59.999999999"),
+ 275760, 9, "M09", 13, 23, 59, 59, 999, 999, 999,
+ "boundary ISO string (positive case)"
+);
+
+reportCompare(0, 0);