Source code
Revision control
Copy as Markdown
Other Tools
// |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
// Copyright 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.plaindate
description: Limits for the PlainDate constructor.
includes: [temporalHelpers.js]
features: [Temporal]
---*/
// Year limits
assert.throws(RangeError, () => new Temporal.PlainDate(-271821, 4, 18), "min");
assert.throws(RangeError, () => new Temporal.PlainDate(275760, 9, 14), "max");
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(-271821, 4, 19),
-271821, 4, "M04", 19, "min");
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(275760, 9, 13),
275760, 9, "M09", 13, "max");
// Monthday limits
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 1, 31), 2021, 1, 'M01', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 2, 28), 2021, 2, 'M02', 28);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 3, 31), 2021, 3, 'M03', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 4, 30), 2021, 4, 'M04', 30);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 5, 31), 2021, 5, 'M05', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 6, 30), 2021, 6, 'M06', 30);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 7, 31), 2021, 7, 'M07', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 8, 31), 2021, 8, 'M08', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 9, 30), 2021, 9, 'M09', 30);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 10, 31), 2021, 10, 'M10', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 11, 30), 2021, 11, 'M11', 30);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2021, 12, 31), 2021, 12, 'M12', 31);
TemporalHelpers.assertPlainDate(new Temporal.PlainDate(2004, 2, 29), 2004, 2, 'M02', 29);
assert.throws(RangeError, () => new Temporal.PlainDate(1900, 2, 29));
assert.throws(RangeError, () => new Temporal.PlainDate(2001, 2, 29));
assert.throws(RangeError, () => new Temporal.PlainDate(2002, 2, 29));
assert.throws(RangeError, () => new Temporal.PlainDate(2003, 2, 29));
assert.throws(RangeError, () => new Temporal.PlainDate(2100, 2, 29));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 1, 32));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 2, 29));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 3, 32));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 4, 31));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 5, 32));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 6, 31));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 7, 32));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 8, 32));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 9, 31));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 10, 32));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 11, 31));
assert.throws(RangeError, () => new Temporal.PlainDate(2021, 12, 32));
reportCompare(0, 0);