diff --git a/Userland/Libraries/LibJS/Runtime/Intl/ListFormat.cpp b/Userland/Libraries/LibJS/Runtime/Intl/ListFormat.cpp index e099a93ff4..f19bdadf66 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/ListFormat.cpp +++ b/Userland/Libraries/LibJS/Runtime/Intl/ListFormat.cpp @@ -62,7 +62,7 @@ ThrowCompletionOr> deconstruct_pattern(VM& vm, StringVi // b. If part is "literal", then if (part == "literal"sv) { // i. Append Record { [[Type]]: "literal", [[Value]]: patternPart.[[Value]] } to result. - result.append({ part, move(pattern_part.value) }); + TRY_OR_THROW_OOM(vm, result.try_append({ part, move(pattern_part.value) })); } // c. Else, else { @@ -71,20 +71,22 @@ ThrowCompletionOr> deconstruct_pattern(VM& vm, StringVi auto subst = placeables.get(part); VERIFY(subst.has_value()); - subst.release_value().visit( + MUST_OR_THROW_OOM(subst.release_value().visit( // iii. If Type(subst) is List, then - [&](Vector& partition) { + [&](Vector& partition) -> ThrowCompletionOr { // 1. For each element s of subst, do for (auto& element : partition) { // a. Append s to result. - result.append(move(element)); + TRY_OR_THROW_OOM(vm, result.try_append(move(element))); } + return {}; }, // iv. Else, - [&](PatternPartition& partition) { + [&](PatternPartition& partition) -> ThrowCompletionOr { // 1. Append subst to result. - result.append(move(partition)); - }); + TRY_OR_THROW_OOM(vm, result.try_append(move(partition))); + return {}; + })); } } @@ -274,7 +276,7 @@ ThrowCompletionOr> string_list_from_iterable(VM& vm, Value iterab } // iii. Append nextValue to the end of the List list. - list.append(TRY(next_value.as_string().utf8_string())); + TRY_OR_THROW_OOM(vm, list.try_append(TRY(next_value.as_string().utf8_string()))); } } while (next != nullptr);