mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-24 08:35:26 +00:00
LibJS: Remove faulty assertion in BalanceDurationRelative
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/66f7464
This commit is contained in:
@@ -783,8 +783,11 @@ ThrowCompletionOr<DateDurationRecord> balance_duration_relative(GlobalObject& gl
|
||||
return create_date_duration_record(years, months, weeks, days);
|
||||
}
|
||||
|
||||
// 2. Assert: relativeTo is not undefined, because callers of this operation ensure relativeTo is required in conditions where this algorithm does not return in step 1.a.
|
||||
VERIFY(!relative_to_value.is_undefined());
|
||||
// 2. If relativeTo is undefined, then
|
||||
if (relative_to_value.is_undefined()) {
|
||||
// a. Throw a RangeError exception.
|
||||
return vm.throw_completion<RangeError>(global_object, ErrorType::TemporalMissingStartingPoint, "calendar units");
|
||||
}
|
||||
|
||||
// 3. Let sign be ! DurationSign(years, months, weeks, days, 0, 0, 0, 0, 0, 0).
|
||||
auto sign = duration_sign(years, months, weeks, days, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
@@ -161,4 +161,16 @@ describe("errors", () => {
|
||||
"A starting point is required for balancing calendar units"
|
||||
);
|
||||
});
|
||||
|
||||
// Spec Issue: https://github.com/tc39/proposal-temporal/issues/2124
|
||||
// Spec Fix: https://github.com/tc39/proposal-temporal/commit/66f7464aaec64d3cd21fb2ec37f6502743b9a730
|
||||
test("balancing calendar units with largestUnit set to 'year' and relativeTo unset throws instead of crashing", () => {
|
||||
const duration = new Temporal.Duration(1);
|
||||
expect(() => {
|
||||
duration.round({ largestUnit: "year" });
|
||||
}).toThrowWithMessage(
|
||||
RangeError,
|
||||
"A starting point is required for balancing calendar units"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user