diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp index c3b0bbd40a..50329b0196 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp @@ -1413,7 +1413,7 @@ ThrowCompletionOr parse_temporal_zoned_date_time_string(VM& vm, Str } // 13.31 ParseTemporalCalendarString ( isoString ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporalcalendarstring -ThrowCompletionOr parse_temporal_calendar_string(VM& vm, StringView iso_string) +ThrowCompletionOr parse_temporal_calendar_string(VM& vm, StringView iso_string) { // 1. Let parseResult be Completion(ParseISODateTime(isoString)). auto parse_result_completion = parse_iso_date_time(vm, iso_string); @@ -1425,10 +1425,10 @@ ThrowCompletionOr parse_temporal_calendar_string(VM& vm, Strin // b. If calendar is undefined, return "iso8601". if (!calendar.has_value()) - return "iso8601"sv; + return TRY_OR_THROW_OOM(vm, String::from_utf8("iso8601"sv)); // c. Else, return calendar. else - return calendar.release_value(); + return TRY_OR_THROW_OOM(vm, String::from_deprecated_string(*calendar)); } // 3. Else, else { @@ -1440,7 +1440,7 @@ ThrowCompletionOr parse_temporal_calendar_string(VM& vm, Strin return vm.throw_completion(ErrorType::TemporalInvalidCalendarString, iso_string); // c. Else, return isoString. else - return iso_string; + return TRY_OR_THROW_OOM(vm, String::from_utf8(iso_string)); } } diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h index c9e5853b58..a8cfac5391 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h @@ -165,7 +165,7 @@ ThrowCompletionOr parse_iso_date_time(VM&, StringView iso_string); ThrowCompletionOr parse_iso_date_time(VM&, ParseResult const& parse_result); ThrowCompletionOr parse_temporal_instant_string(VM&, StringView iso_string); ThrowCompletionOr parse_temporal_zoned_date_time_string(VM&, StringView iso_string); -ThrowCompletionOr parse_temporal_calendar_string(VM&, StringView iso_string); +ThrowCompletionOr parse_temporal_calendar_string(VM&, StringView iso_string); ThrowCompletionOr parse_temporal_date_string(VM&, StringView iso_string); ThrowCompletionOr parse_temporal_date_time_string(VM&, StringView iso_string); ThrowCompletionOr parse_temporal_duration_string(VM&, StringView iso_string); diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp index 41e04c6c99..9650b61423 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp @@ -34,7 +34,7 @@ Calendar::Calendar(DeprecatedString identifier, Object& prototype) } // 12.1.1 IsBuiltinCalendar ( id ), https://tc39.es/proposal-temporal/#sec-temporal-isbuiltincalendar -bool is_builtin_calendar(DeprecatedString const& identifier) +bool is_builtin_calendar(StringView identifier) { // 1. Let calendars be AvailableCalendars(). auto calendars = available_calendars(); @@ -463,7 +463,7 @@ ThrowCompletionOr to_temporal_calendar(VM& vm, Value temporal_calendar_ } // 2. Let identifier be ? ToString(temporalCalendarLike). - auto identifier = TRY(temporal_calendar_like.to_deprecated_string(vm)); + auto identifier = TRY(temporal_calendar_like.to_string(vm)); // 3. Set identifier to ? ParseTemporalCalendarString(identifier). identifier = TRY(parse_temporal_calendar_string(vm, identifier)); @@ -473,7 +473,7 @@ ThrowCompletionOr to_temporal_calendar(VM& vm, Value temporal_calendar_ return vm.throw_completion(ErrorType::TemporalInvalidCalendarIdentifier, identifier); // 5. Return ! CreateTemporalCalendar(identifier). - return MUST(create_temporal_calendar(vm, identifier)); + return MUST(create_temporal_calendar(vm, identifier.to_deprecated_string())); } // 12.2.22 ToTemporalCalendarWithISODefault ( temporalCalendarLike ), https://tc39.es/proposal-temporal/#sec-temporal-totemporalcalendarwithisodefault diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.h b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.h index 5377fb6a5e..1d1a9480c7 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.h +++ b/Userland/Libraries/LibJS/Runtime/Temporal/Calendar.h @@ -37,7 +37,7 @@ struct YearWeekRecord { i32 year { 0 }; }; -bool is_builtin_calendar(DeprecatedString const& identifier); +bool is_builtin_calendar(StringView identifier); Span available_calendars(); ThrowCompletionOr create_temporal_calendar(VM&, DeprecatedString const& identifier, FunctionObject const* new_target = nullptr); ThrowCompletionOr get_builtin_calendar(VM&, DeprecatedString const& identifier);