diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp index ceed329aa3..e173712f04 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp @@ -831,7 +831,7 @@ ThrowCompletionOr parse_temporal_instant_string(GlobalObject& g } // 13.37 ParseTemporalCalendarString ( isoString ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporalcalendarstring -Optional parse_temporal_calendar_string(GlobalObject& global_object, [[maybe_unused]] String const& iso_string) +ThrowCompletionOr parse_temporal_calendar_string(GlobalObject& global_object, [[maybe_unused]] String const& iso_string) { auto& vm = global_object.vm(); @@ -846,18 +846,17 @@ Optional 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(global_object, ErrorType::TemporalInvalidCalendarIdentifier, *id_part); - return {}; + return vm.throw_completion(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 diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h index 77795a14b5..851815915a 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h @@ -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 parse_iso_date_time(GlobalObject&, String const& iso_string); ThrowCompletionOr parse_temporal_instant_string(GlobalObject&, String const& iso_string); -Optional parse_temporal_calendar_string(GlobalObject&, String const& iso_string); +ThrowCompletionOr parse_temporal_calendar_string(GlobalObject&, String const& iso_string); Optional parse_temporal_date_string(GlobalObject&, String const& iso_string); Optional parse_temporal_date_time_string(GlobalObject&, String const& iso_string); Optional parse_temporal_duration_string(GlobalObject&, String const& iso_string); diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp index 1fb91ebd4b..debcd22cd8 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp @@ -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).