1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:17:44 +00:00

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, ...);
This commit is contained in:
Timothy Flynn 2023-02-10 11:36:03 -05:00 committed by Linus Groh
parent 519a1cd23d
commit 8f9659a549

View file

@ -24,7 +24,7 @@ namespace JS {
auto&& _temporary_result = (expression)); \ auto&& _temporary_result = (expression)); \
if (_temporary_result.is_error()) { \ if (_temporary_result.is_error()) { \
VERIFY(_temporary_result.error().code() == ENOMEM); \ VERIFY(_temporary_result.error().code() == ENOMEM); \
return vm.throw_completion<JS::InternalError>(JS::ErrorType::OutOfMemory); \ return (vm).throw_completion<JS::InternalError>(JS::ErrorType::OutOfMemory); \
} \ } \
static_assert(!::AK::Detail::IsLvalueReference<decltype(_temporary_result.release_value())>, \ static_assert(!::AK::Detail::IsLvalueReference<decltype(_temporary_result.release_value())>, \
"Do not return a reference from a fallible expression"); \ "Do not return a reference from a fallible expression"); \