aboutsummaryrefslogtreecommitdiff
path: root/jerry-core
diff options
context:
space:
mode:
authorIstvan Miklos <imiklos2@inf.u-szeged.hu>2018-06-28 08:09:03 +0200
committerLászló Langó <llango.u-szeged@partner.samsung.com>2018-06-28 08:09:03 +0200
commitb9f2b1cf25107b7eb6ff3e7a5a8cd18d8334a1dc (patch)
treed5dabe50adbf928cf1002455dcebf8d1104598d9 /jerry-core
parent34c081095ae74a8ade23346e5461e9e383efdcc0 (diff)
Replace jerry_value_set_abort_flag with jerry_create_abort_from_value (#2411)
Replaced the function, added some tests for it. Also changed the functions order to alphabetical. JerryScript-DCO-1.0-Signed-off-by: Istvan Miklos imiklos2@inf.u-szeged.hu
Diffstat (limited to 'jerry-core')
-rw-r--r--jerry-core/api/jerry.c73
-rw-r--r--jerry-core/include/jerryscript-core.h4
2 files changed, 45 insertions, 32 deletions
diff --git a/jerry-core/api/jerry.c b/jerry-core/api/jerry.c
index 79af048c..622705fb 100644
--- a/jerry-core/api/jerry.c
+++ b/jerry-core/api/jerry.c
@@ -904,35 +904,39 @@ jerry_is_feature_enabled (const jerry_feature_t feature) /**< feature to check *
} /* jerry_is_feature_enabled */
/**
- * Get the value from an error value.
- *
- * Extract the api value from an error. If the second argument is true
- * it will release the input error value.
+ * Create abort from an api value.
*
- * Note:
- * returned value must be freed with jerry_release_value, when it is no longer needed.
+ * Create abort value from an api value. If the second argument is true
+ * it will release the input api value.
*
- * @return jerry_value_t value
+ * @return api abort value
*/
jerry_value_t
-jerry_get_value_from_error (jerry_value_t value, /**< api value */
- bool release) /**< release api value */
+jerry_create_abort_from_value (jerry_value_t value, /**< api value */
+ bool release) /**< release api value */
{
jerry_assert_api_available ();
- if (!ecma_is_value_error_reference (value))
+ if (JERRY_UNLIKELY (ecma_is_value_error_reference (value)))
{
- return release ? value : ecma_copy_value (value);
- }
+ /* This is a rare case so it is optimized for
+ * binary size rather than performance. */
+ if (jerry_value_is_abort (value))
+ {
+ return release ? value : jerry_acquire_value (value);
+ }
- jerry_value_t ret_val = jerry_acquire_value (ecma_get_error_reference_from_value (value)->value);
+ value = jerry_get_value_from_error (value, release);
+ release = true;
+ }
- if (release)
+ if (!release)
{
- jerry_release_value (value);
+ value = ecma_copy_value (value);
}
- return ret_val;
-} /* jerry_get_value_from_error */
+
+ return ecma_create_error_reference (value, false);
+} /* jerry_create_abort_from_value */
/**
* Create error from an api value.
@@ -970,26 +974,35 @@ jerry_create_error_from_value (jerry_value_t value, /**< api value */
} /* jerry_create_error_from_value */
/**
- * Set both the abort and error flags if the value is not an error reference.
+ * Get the value from an error value.
+ *
+ * Extract the api value from an error. If the second argument is true
+ * it will release the input error value.
+ *
+ * Note:
+ * returned value must be freed with jerry_release_value, when it is no longer needed.
+ *
+ * @return jerry_value_t value
*/
-void
-jerry_value_set_abort_flag (jerry_value_t *value_p) /**< api value */
+jerry_value_t
+jerry_get_value_from_error (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 (!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))
- {
- return;
- }
- *value_p = ecma_clear_error_reference (*value_p, false);
+ return release ? value : ecma_copy_value (value);
}
- *value_p = ecma_create_error_reference (*value_p, false);
-} /* jerry_value_set_abort_flag */
+ jerry_value_t ret_val = jerry_acquire_value (ecma_get_error_reference_from_value (value)->value);
+
+ if (release)
+ {
+ jerry_release_value (value);
+ }
+ return ret_val;
+} /* jerry_get_value_from_error */
/**
* Return the type of the Error object if possible.
diff --git a/jerry-core/include/jerryscript-core.h b/jerry-core/include/jerryscript-core.h
index 6862b230..561e6986 100644
--- a/jerry-core/include/jerryscript-core.h
+++ b/jerry-core/include/jerryscript-core.h
@@ -379,9 +379,9 @@ bool jerry_is_feature_enabled (const jerry_feature_t feature);
/**
* Error manipulation functions.
*/
-jerry_value_t jerry_get_value_from_error (jerry_value_t value, bool release);
+jerry_value_t jerry_create_abort_from_value (jerry_value_t value, bool release);
jerry_value_t jerry_create_error_from_value (jerry_value_t value, bool release);
-void jerry_value_set_abort_flag (jerry_value_t *value_p);
+jerry_value_t jerry_get_value_from_error (jerry_value_t value, bool release);
/**
* Error object function(s).