diff --git a/jerry-core/jerry-api.h b/jerry-core/jerry-api.h index d70a56db9..6f8a3bb9b 100644 --- a/jerry-core/jerry-api.h +++ b/jerry-core/jerry-api.h @@ -140,6 +140,9 @@ jerry_object_t *jerry_get_object_value (const jerry_value_t); /** * Converters of 'jerry_value_t' */ +bool jerry_value_to_boolean (const jerry_value_t); +jerry_value_t jerry_value_to_number (const jerry_value_t); +jerry_value_t jerry_value_to_object (const jerry_value_t); jerry_value_t jerry_value_to_string (const jerry_value_t); /** diff --git a/jerry-core/jerry.c b/jerry-core/jerry.c index ef2cdd022..78672b15e 100644 --- a/jerry-core/jerry.c +++ b/jerry-core/jerry.c @@ -2059,9 +2059,61 @@ jerry_exec_snapshot (const void *snapshot_p, /**< snapshot */ #endif /* JERRY_ENABLE_SNAPSHOT_EXEC */ } /* jerry_exec_snapshot */ +/** + * Call ToBoolean operation on the api value. + * + * @return true - if the logical value is true + * false - otherwise + */ +bool +jerry_value_to_boolean (const jerry_value_t value) /**< input value */ +{ + jerry_assert_api_available (); + + return ecma_op_to_boolean (value); +} /* jerry_value_to_boolean */ + +/** + * Call ToNumber operation on the api value. + * + * Note: + * - Can throw error, so return value should be checked with 'jerry_value_is_error'. + * - Return value must be freed with 'jerry_release_value'. + * + * @return number value + */ +jerry_value_t +jerry_value_to_number (const jerry_value_t value) /**< input value */ +{ + jerry_assert_api_available (); + + return ecma_op_to_number (value); +} /* jerry_value_to_number */ + +/** + * Call ToObject operation on the api value. + * + * Note: + * - Can throw error, so return value should be checked with 'jerry_value_is_error'. + * - Return value must be freed with 'jerry_release_value'. + * + * @return object value + */ +jerry_value_t +jerry_value_to_object (const jerry_value_t value) /**< input value */ +{ + jerry_assert_api_available (); + + return ecma_op_to_object (value); +} /* jerry_value_to_object */ + /** * Call the ToString ecma builtin operation on the api value. * + * Note: + * - Can throw error, so return value should be checked with 'jerry_value_is_error'. + * - Return value must be freed with 'jerry_release_value'. + * * @return string value */ jerry_value_t