Fix assertion on unhandled exceptions

Follow up fix after #815 ('a187e6d'). Fixed the following
assertion on unhandled exceptions:
  * ICE: Assertion 'ecma_get_value_type_field (value) == ECMA_TYPE_OBJECT'
    failed at ecma-helpers-value.c(ecma_get_object_from_value):375.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
This commit is contained in:
László Langó
2016-04-08 10:02:12 +02:00
parent 920a9ee244
commit b78f5a55bb
10 changed files with 74 additions and 28 deletions
+7 -2
View File
@@ -171,10 +171,14 @@ static const uint32_t vm_ext_decode_table[] =
/**
* Run global code
*
* Note:
* returned error value should be freed with jerry_api_release_value
* just when the value becomes unnecessary.
*
* @return completion code
*/
jerry_completion_code_t
vm_run_global (ecma_object_t **error_obj_p)
vm_run_global (ecma_value_t *error_value_p) /**< [out] error value */
{
jerry_completion_code_t ret_code;
@@ -192,12 +196,13 @@ vm_run_global (ecma_object_t **error_obj_p)
if (ecma_is_value_error (ret_value))
{
*error_obj_p = ecma_get_object_from_value (ret_value);
*error_value_p = ret_value;
ret_code = JERRY_COMPLETION_CODE_UNHANDLED_EXCEPTION;
}
else
{
ecma_free_value (ret_value);
*error_value_p = ecma_make_simple_value (ECMA_SIMPLE_VALUE_EMPTY);
ret_code = JERRY_COMPLETION_CODE_OK;
}
+1 -1
View File
@@ -194,7 +194,7 @@ typedef enum
extern void vm_init (ecma_compiled_code_t *);
extern void vm_finalize (void);
extern jerry_completion_code_t vm_run_global (ecma_object_t **);
extern jerry_completion_code_t vm_run_global (ecma_value_t *);
extern ecma_value_t vm_run_eval (ecma_compiled_code_t *, bool);
extern ecma_value_t vm_run (const ecma_compiled_code_t *, ecma_value_t,