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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user