From 9af525bbb0c1d532f0a7cbd3f3052f31438c77b3 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Thu, 2 Feb 2023 21:49:40 -0500 Subject: [PATCH] LibJS: Propagate OOM from Intl.RelativeTimeFormat Vector operations --- .../Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp index b9d4ee22e0..53df2d341c 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp +++ b/Userland/Libraries/LibJS/Runtime/Intl/RelativeTimeFormat.cpp @@ -151,7 +151,9 @@ ThrowCompletionOr> partition_relative_time_patt auto result = TRY_OR_THROW_OOM(vm, String::from_utf8(patterns[0].pattern)); // ii. Return a List containing the Record { [[Type]]: "literal", [[Value]]: result }. - return Vector { { "literal"sv, move(result) } }; + Vector result_list; + TRY_OR_THROW_OOM(vm, result_list.try_empend("literal"sv, move(result))); + return result_list; } } @@ -202,7 +204,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. - result.empend("literal"sv, move(pattern_part.value)); + TRY_OR_THROW_OOM(vm, result.try_empend("literal"sv, move(pattern_part.value))); } // b. Else, else { @@ -212,7 +214,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. - result.empend(part.type, move(part.value), unit); + TRY_OR_THROW_OOM(vm, result.try_empend(part.type, move(part.value), unit)); } } }