Replace the jerry_value_set_error_flag function with jerry_create_error_from_value (#2367)
JerryScript-DCO-1.0-Signed-off-by: Istvan Miklos imiklos2@inf.u-szeged.hu
This commit is contained in:
+23
-9
@@ -934,26 +934,40 @@ jerry_get_value_from_error (jerry_value_t value, /**< api value */
|
||||
} /* jerry_get_value_from_error */
|
||||
|
||||
/**
|
||||
* Set the error flag if the value is not an error reference.
|
||||
* Create error from an api value.
|
||||
*
|
||||
* Create error value from an api value. If the second argument is true
|
||||
* it will release the input api value.
|
||||
*
|
||||
* @return api error value
|
||||
*/
|
||||
void
|
||||
jerry_value_set_error_flag (jerry_value_t *value_p) /**< api value */
|
||||
jerry_value_t
|
||||
jerry_create_error_from_value (jerry_value_t value, /**< api value */
|
||||
bool release) /**< release api value */
|
||||
{
|
||||
jerry_assert_api_available ();
|
||||
|
||||
if (JERRY_UNLIKELY (ecma_is_value_error_reference (*value_p)))
|
||||
if (JERRY_UNLIKELY (ecma_is_value_error_reference (value)))
|
||||
{
|
||||
/* This is a rare case so it is optimized for
|
||||
* binary size rather than performance. */
|
||||
if (!jerry_value_is_abort (*value_p))
|
||||
if (!jerry_value_is_abort (value))
|
||||
{
|
||||
return;
|
||||
return (release ? value : jerry_acquire_value (value));
|
||||
}
|
||||
*value_p = ecma_clear_error_reference (*value_p, false);
|
||||
|
||||
value = jerry_get_value_from_error (value, release);
|
||||
release = true;
|
||||
}
|
||||
|
||||
*value_p = ecma_create_error_reference (*value_p, true);
|
||||
} /* jerry_value_set_error_flag */
|
||||
jerry_value_t ret_val = ecma_create_error_reference (value, true);
|
||||
if (release)
|
||||
{
|
||||
jerry_release_value (value);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
} /* jerry_create_error_from_value */
|
||||
|
||||
/**
|
||||
* Set both the abort and error flags if the value is not an error reference.
|
||||
|
||||
Reference in New Issue
Block a user