1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:27:35 +00:00

LibJS: Convert parse_temporal_calendar_string() to ThrowCompletionOr

This commit is contained in:
Linus Groh 2021-09-16 17:50:23 +01:00
parent 4f487266b4
commit 2e28f0b371
3 changed files with 6 additions and 10 deletions

View file

@ -831,7 +831,7 @@ ThrowCompletionOr<TemporalInstant> parse_temporal_instant_string(GlobalObject& g
}
// 13.37 ParseTemporalCalendarString ( isoString ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporalcalendarstring
Optional<String> parse_temporal_calendar_string(GlobalObject& global_object, [[maybe_unused]] String const& iso_string)
ThrowCompletionOr<String> parse_temporal_calendar_string(GlobalObject& global_object, [[maybe_unused]] String const& iso_string)
{
auto& vm = global_object.vm();
@ -846,18 +846,17 @@ Optional<String> parse_temporal_calendar_string(GlobalObject& global_object, [[m
// 4. If id is undefined, then
if (!id_part.has_value()) {
// a. Return "iso8601".
return "iso8601";
return { "iso8601"sv };
}
// 5. If ! IsBuiltinCalendar(id) is false, then
if (!is_builtin_calendar(*id_part)) {
// a. Throw a RangeError exception.
vm.throw_exception<RangeError>(global_object, ErrorType::TemporalInvalidCalendarIdentifier, *id_part);
return {};
return vm.throw_completion<RangeError>(global_object, ErrorType::TemporalInvalidCalendarIdentifier, *id_part);
}
// 6. Return id.
return id_part.value();
return { id_part.value() };
}
// 13.38 ParseTemporalDateString ( isoString ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporaldatestring

View file

@ -105,7 +105,7 @@ double constrain_to_range(double x, double minimum, double maximum);
BigInt* round_number_to_increment(GlobalObject&, BigInt const&, u64 increment, StringView rounding_mode);
ThrowCompletionOr<ISODateTime> parse_iso_date_time(GlobalObject&, String const& iso_string);
ThrowCompletionOr<TemporalInstant> parse_temporal_instant_string(GlobalObject&, String const& iso_string);
Optional<String> parse_temporal_calendar_string(GlobalObject&, String const& iso_string);
ThrowCompletionOr<String> parse_temporal_calendar_string(GlobalObject&, String const& iso_string);
Optional<TemporalDate> parse_temporal_date_string(GlobalObject&, String const& iso_string);
Optional<ISODateTime> parse_temporal_date_time_string(GlobalObject&, String const& iso_string);
Optional<TemporalDuration> parse_temporal_duration_string(GlobalObject&, String const& iso_string);

View file

@ -378,10 +378,7 @@ Object* to_temporal_calendar(GlobalObject& global_object, Value temporal_calenda
// 3. If ! IsBuiltinCalendar(identifier) is false, then
if (!is_builtin_calendar(identifier)) {
// a. Let identifier be ? ParseTemporalCalendarString(identifier).
auto parsed_identifier = parse_temporal_calendar_string(global_object, identifier);
if (vm.exception())
return {};
identifier = move(*parsed_identifier);
identifier = TRY_OR_DISCARD(parse_temporal_calendar_string(global_object, identifier));
}
// 4. Return ! CreateTemporalCalendar(identifier).