Temporal: Additional tests for cases where date addition goes out of range

See tc39/proposal-temporal#2985
This commit is contained in:
Philip Chimento 2024-10-02 14:59:37 -07:00 committed by Ms2ger
parent 326cdb8da8
commit f4a987fe3c
3 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,18 @@
// Copyright (C) 2024 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.prototype.hoursinday
description: >
Finding the boundary with the next day may throw if the instance is at the
upper edge of the representable range
features: [Temporal]
---*/
const instance = new Temporal.Duration();
const relativeTo = new Temporal.ZonedDateTime(86400_0000_0000_000_000_000n, "UTC");
assert.throws(
RangeError,
() => instance.round({ largestUnit: "days", smallestUnit: "minutes", relativeTo }),
"Next day boundary is out of range"
);

View File

@ -0,0 +1,13 @@
// Copyright (C) 2024 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.prototype.hoursinday
description: >
Finding the boundary with the next day may throw if the instance is at the
upper edge of the representable range
features: [Temporal]
---*/
const z = new Temporal.ZonedDateTime(86400_0000_0000_000_000_000n, "UTC");
assert.throws(RangeError, () => z.hoursInDay, "Next day boundary is out of range");

View File

@ -0,0 +1,13 @@
// Copyright (C) 2024 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.prototype.round
description: >
Finding the upper bound for day rounding may fail if the instance is at the
upper edge of the representable range
features: [Temporal]
---*/
const instance = new Temporal.ZonedDateTime(86400_0000_0000_000_000_000n, "UTC");
assert.throws(RangeError, () => instance.round({ smallestUnit: 'day' }), "Upper bound for rounding is out of range");