diff --git a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp index ff7fd64a64..0d1f8ed8b4 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp +++ b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -11,7 +12,6 @@ #include #include #include -#include namespace JS::Intl { @@ -148,12 +148,10 @@ ThrowCompletionOr> partition_relative_time_patt VERIFY(patterns.size() == 1); // i. Let result be patterns.[[]]. - auto result = TRY_OR_THROW_OOM(vm, String::from_utf8(patterns[0].pattern)); + auto result = MUST(String::from_utf8(patterns[0].pattern)); // ii. Return a List containing the Record { [[Type]]: "literal", [[Value]]: result }. - Vector result_list; - TRY_OR_THROW_OOM(vm, result_list.try_empend("literal"sv, move(result))); - return result_list; + return Vector { { "literal"sv, move(result) } }; } } @@ -187,11 +185,11 @@ ThrowCompletionOr> partition_relative_time_patt return Vector {}; // 23. Return ! MakePartsList(pattern, unit, fv). - return MUST_OR_THROW_OOM(make_parts_list(vm, pattern->pattern, ::Locale::time_unit_to_string(time_unit), move(value_partitions))); + return make_parts_list(pattern->pattern, ::Locale::time_unit_to_string(time_unit), move(value_partitions)); } // 17.5.3 MakePartsList ( pattern, unit, parts ), https://tc39.es/ecma402/#sec-makepartslist -ThrowCompletionOr> make_parts_list(VM& vm, StringView pattern, StringView unit, Vector parts) +Vector make_parts_list(StringView pattern, StringView unit, Vector parts) { // 1. Let patternParts be PartitionPattern(pattern). auto pattern_parts = partition_pattern(pattern); @@ -204,7 +202,7 @@ ThrowCompletionOr> make_parts_list(VM& vm, Stri // a. If patternPart.[[Type]] is "literal", then if (pattern_part.type == "literal"sv) { // i. Append Record { [[Type]]: "literal", [[Value]]: patternPart.[[Value]], [[Unit]]: empty } to result. - TRY_OR_THROW_OOM(vm, result.try_empend("literal"sv, move(pattern_part.value))); + result.empend("literal"sv, move(pattern_part.value)); } // b. Else, else { @@ -214,7 +212,7 @@ ThrowCompletionOr> make_parts_list(VM& vm, Stri // ii. For each Record { [[Type]], [[Value]] } part in parts, do for (auto& part : parts) { // 1. Append Record { [[Type]]: part.[[Type]], [[Value]]: part.[[Value]], [[Unit]]: unit } to result. - TRY_OR_THROW_OOM(vm, result.try_empend(part.type, move(part.value), unit)); + result.empend(part.type, move(part.value), unit); } } } @@ -230,20 +228,20 @@ ThrowCompletionOr format_relative_time(VM& vm, RelativeTimeFormat& relat auto parts = TRY(partition_relative_time_pattern(vm, relative_time_format, value, unit)); // 2. Let result be an empty String. - ThrowableStringBuilder result(vm); + StringBuilder result; // 3. For each Record { [[Type]], [[Value]], [[Unit]] } part in parts, do for (auto& part : parts) { // a. Set result to the string-concatenation of result and part.[[Value]]. - MUST_OR_THROW_OOM(result.append(part.value)); + result.append(part.value); } // 4. Return result. - return result.to_string(); + return MUST(result.to_string()); } // 17.5.5 FormatRelativeTimeToParts ( relativeTimeFormat, value, unit ), https://tc39.es/ecma402/#sec-FormatRelativeTimeToParts -ThrowCompletionOr format_relative_time_to_parts(VM& vm, RelativeTimeFormat& relative_time_format, double value, StringView unit) +ThrowCompletionOr> format_relative_time_to_parts(VM& vm, RelativeTimeFormat& relative_time_format, double value, StringView unit) { auto& realm = *vm.current_realm(); @@ -281,7 +279,7 @@ ThrowCompletionOr format_relative_time_to_parts(VM& vm, RelativeTimeForm } // 5. Return result. - return result.ptr(); + return result; } } diff --git a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.h b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.h index 7730b1d77c..ece4937a96 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.h +++ b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.h @@ -84,8 +84,8 @@ struct PatternPartitionWithUnit : public PatternPartition { ThrowCompletionOr<::Locale::TimeUnit> singular_relative_time_unit(VM&, StringView unit); ThrowCompletionOr> partition_relative_time_pattern(VM&, RelativeTimeFormat&, double value, StringView unit); -ThrowCompletionOr> make_parts_list(VM&, StringView pattern, StringView unit, Vector parts); +Vector make_parts_list(StringView pattern, StringView unit, Vector parts); ThrowCompletionOr format_relative_time(VM&, RelativeTimeFormat&, double value, StringView unit); -ThrowCompletionOr format_relative_time_to_parts(VM&, RelativeTimeFormat&, double value, StringView unit); +ThrowCompletionOr> format_relative_time_to_parts(VM&, RelativeTimeFormat&, double value, StringView unit); } diff --git a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.cpp b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.cpp index ef8dc57423..86f723ffe4 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.cpp @@ -57,7 +57,7 @@ ThrowCompletionOr> RelativeTimeFormatConstructor::construct auto relative_time_format = TRY(ordinary_create_from_constructor(vm, new_target, &Intrinsics::intl_relative_time_format_prototype)); // 3. Return ? InitializeRelativeTimeFormat(relativeTimeFormat, locales, options). - return *TRY(initialize_relative_time_format(vm, relative_time_format, locales, options)); + return TRY(initialize_relative_time_format(vm, relative_time_format, locales, options)); } // 17.2.2 Intl.RelativeTimeFormat.supportedLocalesOf ( locales [ , options ] ), https://tc39.es/ecma402/#sec-Intl.RelativeTimeFormat.supportedLocalesOf @@ -76,7 +76,7 @@ JS_DEFINE_NATIVE_FUNCTION(RelativeTimeFormatConstructor::supported_locales_of) } // 17.1.2 InitializeRelativeTimeFormat ( relativeTimeFormat, locales, options ), https://tc39.es/ecma402/#sec-InitializeRelativeTimeFormat -ThrowCompletionOr initialize_relative_time_format(VM& vm, RelativeTimeFormat& relative_time_format, Value locales_value, Value options_value) +ThrowCompletionOr> initialize_relative_time_format(VM& vm, RelativeTimeFormat& relative_time_format, Value locales_value, Value options_value) { auto& realm = *vm.current_realm(); @@ -146,7 +146,7 @@ ThrowCompletionOr initialize_relative_time_format(VM& vm, R relative_time_format.set_plural_rules(static_cast(plural_rules.ptr())); // 21. Return relativeTimeFormat. - return &relative_time_format; + return relative_time_format; } } diff --git a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.h b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.h index 9459dc1fde..9ef3f38904 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.h +++ b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormatConstructor.h @@ -28,6 +28,6 @@ private: JS_DECLARE_NATIVE_FUNCTION(supported_locales_of); }; -ThrowCompletionOr initialize_relative_time_format(VM& vm, RelativeTimeFormat& relative_time_format, Value locales_value, Value options_value); +ThrowCompletionOr> initialize_relative_time_format(VM& vm, RelativeTimeFormat& relative_time_format, Value locales_value, Value options_value); }