From 8f9659a5495e598dec542b529efd90ca4d737c60 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Fri, 10 Feb 2023 11:36:03 -0500 Subject: [PATCH] LibJS: Surround the VM parameter of TRY_OR_THROW_OOM with parentheses Depending on how this is invoked, the preprocessor may get confused when pasting the VM parameter into this expression. For example, it trips up on the JS REPL in cases such as: TRY_OR_THROW_OOM(*g_vm, ...); --- Userland/Libraries/LibJS/Runtime/Completion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/Completion.h b/Userland/Libraries/LibJS/Runtime/Completion.h index 7fe307bf01..b5d089ab84 100644 --- a/Userland/Libraries/LibJS/Runtime/Completion.h +++ b/Userland/Libraries/LibJS/Runtime/Completion.h @@ -24,7 +24,7 @@ namespace JS { auto&& _temporary_result = (expression)); \ if (_temporary_result.is_error()) { \ VERIFY(_temporary_result.error().code() == ENOMEM); \ - return vm.throw_completion(JS::ErrorType::OutOfMemory); \ + return (vm).throw_completion(JS::ErrorType::OutOfMemory); \ } \ static_assert(!::AK::Detail::IsLvalueReference, \ "Do not return a reference from a fallible expression"); \