Refactoring function call operations to return 'normal' completion values instead of 'return' completion values. Removing ECMA_FUNCTION_CALL macro.

This commit is contained in:
Ruben Ayrapetyan
2014-09-24 14:21:03 +04:00
parent 3a31bf6eb1
commit 25ec2bea17
9 changed files with 58 additions and 89 deletions
+5
View File
@@ -493,6 +493,11 @@ run_int_from_pos (opcode_counter_t start_pos,
completion = run_int_loop (&int_data);
JERRY_ASSERT (ecma_is_completion_value_normal (completion)
|| ecma_is_completion_value_throw (completion)
|| ecma_is_completion_value_return (completion)
|| ecma_is_completion_value_exit (completion));
for (uint32_t reg_index = 0;
reg_index < regs_num;
reg_index++)
+9 -9
View File
@@ -89,9 +89,9 @@ opfunc_call_1 (opcode_t opdata __unused, int_data_t *int_data)
ecma_object_t *func_obj_p = ECMA_GET_POINTER (func_value.u.value.value);
ECMA_TRY_CATCH (this_value, ecma_op_implicit_this_value (int_data->lex_env_p), ret_value);
ECMA_FUNCTION_CALL (call_completion,
ecma_op_function_call (func_obj_p, this_value.u.value, &arg_value.u.value, 1),
ret_value);
ECMA_TRY_CATCH (call_completion,
ecma_op_function_call (func_obj_p, this_value.u.value, &arg_value.u.value, 1),
ret_value);
ret_value = set_variable_value (int_data, lhs_var_idx, call_completion.u.value);
@@ -697,9 +697,9 @@ opfunc_call_0 (opcode_t opdata, /**< operation data */
ecma_object_t *func_obj_p = ECMA_GET_POINTER (func_value.u.value.value);
ECMA_TRY_CATCH (this_value, ecma_op_implicit_this_value (int_data->lex_env_p), ret_value);
ECMA_FUNCTION_CALL (call_completion,
ecma_op_function_call (func_obj_p, this_value.u.value, NULL, 0),
ret_value);
ECMA_TRY_CATCH (call_completion,
ecma_op_function_call (func_obj_p, this_value.u.value, NULL, 0),
ret_value);
ret_value = set_variable_value (int_data, lhs_var_idx, call_completion.u.value);
@@ -771,9 +771,9 @@ opfunc_call_n (opcode_t opdata, /**< operation data */
{
ecma_object_t *func_obj_p = ECMA_GET_POINTER (func_value.u.value.value);
ECMA_FUNCTION_CALL (call_completion,
ecma_op_function_call (func_obj_p, this_value.u.value, arg_values, args_number),
ret_value);
ECMA_TRY_CATCH (call_completion,
ecma_op_function_call (func_obj_p, this_value.u.value, arg_values, args_number),
ret_value);
ret_value = set_variable_value (int_data, lhs_var_idx, call_completion.u.value);