1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:57:47 +00:00

LibJS: Remove faulty assertion in BalanceDurationRelative

This is an editorial change in the Temporal spec.

See: 66f7464
This commit is contained in:
Luke Wilde 2022-05-16 20:40:17 +01:00 committed by Linus Groh
parent d2c1dd5454
commit 2b764b3594
2 changed files with 17 additions and 2 deletions

View file

@ -783,8 +783,11 @@ ThrowCompletionOr<DateDurationRecord> balance_duration_relative(GlobalObject& gl
return create_date_duration_record(years, months, weeks, days); 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. // 2. If relativeTo is undefined, then
VERIFY(!relative_to_value.is_undefined()); 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). // 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); auto sign = duration_sign(years, months, weeks, days, 0, 0, 0, 0, 0, 0);

View file

@ -161,4 +161,16 @@ describe("errors", () => {
"A starting point is required for balancing calendar units" "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"
);
});
}); });