Skip to content

Commit 65f9e66

Browse files
committed
Add conversion API functions
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
1 parent 372a2bb commit 65f9e66

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

jerry-core/jerry-api.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,9 @@ jerry_object_t *jerry_get_object_value (const jerry_value_t);
140140
/**
141141
* Converters of 'jerry_value_t'
142142
*/
143+
bool jerry_value_to_boolean (const jerry_value_t);
144+
jerry_value_t jerry_value_to_number (const jerry_value_t);
145+
jerry_value_t jerry_value_to_object (const jerry_value_t);
143146
jerry_value_t jerry_value_to_string (const jerry_value_t);
144147

145148
/**

jerry-core/jerry.c

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2102,9 +2102,61 @@ jerry_exec_snapshot (const void *snapshot_p, /**< snapshot */
21022102
#endif /* JERRY_ENABLE_SNAPSHOT_EXEC */
21032103
} /* jerry_exec_snapshot */
21042104

2105+
/**
2106+
* Call ToBoolean operation on the api value.
2107+
*
2108+
* @return true - if the logical value is true
2109+
* false - otherwise
2110+
*/
2111+
bool
2112+
jerry_value_to_boolean (const jerry_value_t value) /**< input value */
2113+
{
2114+
jerry_assert_api_available ();
2115+
2116+
return ecma_op_to_boolean (value);
2117+
} /* jerry_value_to_boolean */
2118+
2119+
/**
2120+
* Call ToNumber operation on the api value.
2121+
*
2122+
* Note:
2123+
* - Can throw error, so return value should be checked with 'jerry_value_is_error'.
2124+
* - Return value must be freed with 'jerry_release_value'.
2125+
*
2126+
* @return number value
2127+
*/
2128+
jerry_value_t
2129+
jerry_value_to_number (const jerry_value_t value) /**< input value */
2130+
{
2131+
jerry_assert_api_available ();
2132+
2133+
return ecma_op_to_number (value);
2134+
} /* jerry_value_to_number */
2135+
2136+
/**
2137+
* Call ToObject operation on the api value.
2138+
*
2139+
* Note:
2140+
* - Can throw error, so return value should be checked with 'jerry_value_is_error'.
2141+
* - Return value must be freed with 'jerry_release_value'.
2142+
*
2143+
* @return object value
2144+
*/
2145+
jerry_value_t
2146+
jerry_value_to_object (const jerry_value_t value) /**< input value */
2147+
{
2148+
jerry_assert_api_available ();
2149+
2150+
return ecma_op_to_object (value);
2151+
} /* jerry_value_to_object */
2152+
21052153
/**
21062154
* Call the ToString ecma builtin operation on the api value.
21072155
*
2156+
* Note:
2157+
* - Can throw error, so return value should be checked with 'jerry_value_is_error'.
2158+
* - Return value must be freed with 'jerry_release_value'.
2159+
*
21082160
* @return string value
21092161
*/
21102162
jerry_value_t

0 commit comments

Comments
 (0)