Remove ECMA_TRY_CATCH macro (#3829)

also refactored the touched methods a little bit

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu
This commit is contained in:
Szilagyi Adam
2020-07-03 15:06:49 +02:00
committed by GitHub
parent 19ecd8717f
commit 392ee71712
8 changed files with 510 additions and 520 deletions
@@ -18,41 +18,6 @@
#include "ecma-helpers.h"
/**
* The macro defines try-block that initializes variable 'var' with 'op'
* and checks for exceptions that might be thrown during initialization.
*
* If no exception was thrown, then code after the try-block is executed.
* Otherwise, throw-completion value is just copied to return_value.
*
* Note:
* Each ECMA_TRY_CATCH should have it's own corresponding ECMA_FINALIZE
* statement with same argument as corresponding ECMA_TRY_CATCH's first argument.
*/
#define ECMA_TRY_CATCH(var, op, return_value) \
JERRY_ASSERT (return_value == ECMA_VALUE_EMPTY); \
ecma_value_t var ## _completion = op; \
if (ECMA_IS_VALUE_ERROR (var ## _completion)) \
{ \
return_value = var ## _completion; \
} \
else \
{ \
ecma_value_t var = var ## _completion; \
JERRY_UNUSED (var);
/**
* The macro marks end of code block that is defined by corresponding
* ECMA_TRY_CATCH and frees variable, initialized by the ECMA_TRY_CATCH.
*
* Note:
* Each ECMA_TRY_CATCH should be followed by ECMA_FINALIZE with same argument
* as corresponding ECMA_TRY_CATCH's first argument.
*/
#define ECMA_FINALIZE(var) \
ecma_free_value (var ## _completion); \
}
/**
* The macro defines try-block that tries to perform ToNumber operation on given value
* and checks for exceptions that might be thrown during the operation.