1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:18:11 +00:00

LibJS: Throw a RangeError when when formatting strings in DurationFormat

This is a normative change in the Intl.DurationFormat proposal. See:
2546080
This commit is contained in:
Timothy Flynn 2022-12-14 15:30:34 -05:00 committed by Linus Groh
parent 010888acec
commit a2cf026b30
3 changed files with 19 additions and 4 deletions

View file

@ -134,9 +134,16 @@ StringView DurationFormat::display_to_string(Display display)
// 1.1.3 ToDurationRecord ( input ), https://tc39.es/proposal-intl-duration-format/#sec-todurationrecord
ThrowCompletionOr<Temporal::DurationRecord> to_duration_record(VM& vm, Value input)
{
// 1. If Type(input) is not Object, throw a TypeError exception.
if (!input.is_object())
// 1. If Type(input) is not Object, then
if (!input.is_object()) {
// a. If Type(input) is String, throw a RangeError exception.
if (input.is_string())
return vm.throw_completion<RangeError>(ErrorType::NotAnObject, input);
// b. Throw a TypeError exception.
return vm.throw_completion<TypeError>(ErrorType::NotAnObject, input);
}
auto& input_object = input.as_object();
// 2. Let result be a new Duration Record with each field set to 0.