diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp index 1e0e76b025..ea415d8619 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp @@ -117,7 +117,7 @@ Value get_option(GlobalObject& global_object, Object& options, String const& pro } // 13.8 ToTemporalRoundingMode ( normalizedOptions, fallback ), https://tc39.es/proposal-temporal/#sec-temporal-totemporalroundingmode -String to_temporal_rounding_mode(GlobalObject& global_object, Object& normalized_options, String const& fallback) +Optional to_temporal_rounding_mode(GlobalObject& global_object, Object& normalized_options, String const& fallback) { auto& vm = global_object.vm(); @@ -424,7 +424,7 @@ Optional parse_temporal_instant_string(GlobalObject& global_obj } // 13.37 ParseTemporalCalendarString ( isoString ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporalcalendarstring -String parse_temporal_calendar_string([[maybe_unused]] GlobalObject& global_object, [[maybe_unused]] String const& iso_string) +Optional parse_temporal_calendar_string([[maybe_unused]] GlobalObject& global_object, [[maybe_unused]] String const& iso_string) { // 1. Assert: Type(isoString) is String. diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h index d7667ce951..c0479427be 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h @@ -54,13 +54,13 @@ struct TemporalTimeZone { Object* get_options_object(GlobalObject&, Value options); Value get_option(GlobalObject&, Object& options, String const& property, Vector const& types, Vector const& values, Value fallback); -String to_temporal_rounding_mode(GlobalObject&, Object& normalized_options, String const& fallback); +Optional to_temporal_rounding_mode(GlobalObject&, Object& normalized_options, String const& fallback); u64 to_temporal_rounding_increment(GlobalObject&, Object& normalized_options, Optional dividend, bool inclusive); Optional to_smallest_temporal_unit(GlobalObject&, Object& normalized_options, Vector const& disallowed_units, Optional fallback); BigInt* round_number_to_increment(GlobalObject&, BigInt const&, u64 increment, String const& rounding_mode); Optional parse_iso_date_time(GlobalObject&, String const& iso_string); Optional parse_temporal_instant_string(GlobalObject&, String const& iso_string); -String parse_temporal_calendar_string(GlobalObject&, String const& iso_string); +Optional parse_temporal_calendar_string(GlobalObject&, String const& iso_string); Optional parse_temporal_duration_string(GlobalObject&, String const& iso_string); Optional parse_temporal_time_zone_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 f839eedd64..72270e198d 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp @@ -126,9 +126,10 @@ 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). - identifier = parse_temporal_calendar_string(global_object, identifier); + auto parsed_identifier = parse_temporal_calendar_string(global_object, identifier); if (vm.exception()) return {}; + identifier = move(*parsed_identifier); } // 4. Return ? CreateTemporalCalendar(identifier). diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp index 5341da3d94..9f847d8651 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp @@ -196,7 +196,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::round) return {}; // 14. Let roundedNs be ? RoundTemporalInstant(instant.[[Nanoseconds]], roundingIncrement, smallestUnit, roundingMode). - auto* rounded_ns = round_temporal_instant(global_object, instant->nanoseconds(), rounding_increment, smallest_unit, rounding_mode); + auto* rounded_ns = round_temporal_instant(global_object, instant->nanoseconds(), rounding_increment, smallest_unit, *rounding_mode); if (vm.exception()) return {};