mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Add two new API functions: jerry_create_number_infinity and jerry_create_number_nan
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
parent
b6f174cce7
commit
ae1118293f
@ -1758,6 +1758,77 @@ jerry_create_number (double value);
|
||||
**See also**
|
||||
|
||||
- [jerry_release_value](#jerry_release_value)
|
||||
- [jerry_create_number_infinity](#jerry_create_number_infinity)
|
||||
- [jerry_create_number_nan](#jerry_create_number_nan)
|
||||
|
||||
|
||||
## jerry_create_number_infinity
|
||||
|
||||
**Summary**
|
||||
|
||||
Creates a `jerry_value_t` representing a positive or negative infinity value.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
jerry_value_t
|
||||
jerry_create_number_infinity (bool sign);
|
||||
```
|
||||
|
||||
- `sign` - true for negative Infinity and false for positive Infinity
|
||||
- return value - a `jerry_value_t` representing the infinity value
|
||||
|
||||
**Example**
|
||||
|
||||
```c
|
||||
{
|
||||
jerry_value_t positive_inf_value = jerry_create_number_infinity (false);
|
||||
|
||||
... // usage of the positive_inf_value
|
||||
|
||||
jerry_release_value (positive_inf_value);
|
||||
}
|
||||
```
|
||||
|
||||
**See also**
|
||||
|
||||
- [jerry_release_value](#jerry_release_value)
|
||||
- [jerry_create_number](#jerry_create_number)
|
||||
- [jerry_create_number_nan](#jerry_create_number_nan)
|
||||
|
||||
|
||||
## jerry_create_number_nan
|
||||
|
||||
**Summary**
|
||||
|
||||
Creates a `jerry_value_t` representing a not-a-number value.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
jerry_value_t
|
||||
jerry_create_number_nan (void);
|
||||
```
|
||||
|
||||
- return value - a `jerry_value_t` representing the not-a-number value
|
||||
|
||||
**Example**
|
||||
|
||||
```c
|
||||
{
|
||||
jerry_value_t nan_value = jerry_create_number_nan ();
|
||||
|
||||
... // usage of the nan_value
|
||||
|
||||
jerry_release_value (nan_value);
|
||||
}
|
||||
```
|
||||
|
||||
**See also**
|
||||
|
||||
- [jerry_release_value](#jerry_release_value)
|
||||
- [jerry_create_number](#jerry_create_number)
|
||||
- [jerry_create_number_infinity](#jerry_create_number_infinity)
|
||||
|
||||
|
||||
## jerry_create_null
|
||||
|
||||
@ -244,6 +244,8 @@ jerry_value_t jerry_create_error (jerry_error_t, const jerry_char_t *);
|
||||
jerry_value_t jerry_create_error_sz (jerry_error_t, const jerry_char_t *, jerry_size_t);
|
||||
jerry_value_t jerry_create_external_function (jerry_external_handler_t);
|
||||
jerry_value_t jerry_create_number (double);
|
||||
jerry_value_t jerry_create_number_infinity (bool);
|
||||
jerry_value_t jerry_create_number_nan (void);
|
||||
jerry_value_t jerry_create_null (void);
|
||||
jerry_value_t jerry_create_object (void);
|
||||
jerry_value_t jerry_create_string (const jerry_char_t *);
|
||||
|
||||
@ -853,6 +853,39 @@ jerry_create_number (double value) /**< double value from which a jerry_value_t
|
||||
return ecma_make_number_value ((ecma_number_t) value);
|
||||
} /* jerry_create_number */
|
||||
|
||||
/**
|
||||
* Creates a jerry_value_t representing a positive or negative infinity value.
|
||||
*
|
||||
* Note:
|
||||
* returned value must be freed with jerry_release_value, when it is no longer needed.
|
||||
*
|
||||
* @return jerry_value_t representing an infinity value.
|
||||
*/
|
||||
jerry_value_t
|
||||
jerry_create_number_infinity (bool sign) /**< true for negative Infinity
|
||||
* false for positive Infinity */
|
||||
{
|
||||
jerry_assert_api_available ();
|
||||
|
||||
return ecma_make_number_value (ecma_number_make_infinity (sign));
|
||||
} /* jerry_create_number_infinity */
|
||||
|
||||
/**
|
||||
* Creates a jerry_value_t representing a not-a-number value.
|
||||
*
|
||||
* Note:
|
||||
* returned value must be freed with jerry_release_value, when it is no longer needed.
|
||||
*
|
||||
* @return jerry_value_t representing a not-a-number value.
|
||||
*/
|
||||
jerry_value_t
|
||||
jerry_create_number_nan (void)
|
||||
{
|
||||
jerry_assert_api_available ();
|
||||
|
||||
return ecma_make_nan_value ();
|
||||
} /* jerry_create_number_nan */
|
||||
|
||||
/**
|
||||
* Creates and returns a jerry_value_t with type null object.
|
||||
*
|
||||
|
||||
@ -309,6 +309,7 @@ main (void)
|
||||
jerry_value_t throw_test_handler_val;
|
||||
jerry_value_t parsed_code_val, proto_val, prim_val;
|
||||
jerry_value_t res, args[2];
|
||||
double number_val;
|
||||
char buffer[32];
|
||||
|
||||
is_ok = test_run_simple ("print ('Hello, World!');");
|
||||
@ -700,9 +701,25 @@ main (void)
|
||||
// cleanup.
|
||||
jerry_release_value (global_obj_val);
|
||||
|
||||
// TEST: run gc.
|
||||
// Test: run gc.
|
||||
jerry_gc ();
|
||||
|
||||
// Test: number
|
||||
val_t = jerry_create_number (6.25);
|
||||
number_val = jerry_get_number_value (val_t);
|
||||
TEST_ASSERT (number_val * 3 == 18.75);
|
||||
jerry_release_value (val_t);
|
||||
|
||||
val_t = jerry_create_number_infinity (true);
|
||||
number_val = jerry_get_number_value (val_t);
|
||||
TEST_ASSERT (number_val * 3 == number_val && number_val != 0.0);
|
||||
jerry_release_value (val_t);
|
||||
|
||||
val_t = jerry_create_number_nan ();
|
||||
number_val = jerry_get_number_value (val_t);
|
||||
TEST_ASSERT (number_val != number_val);
|
||||
jerry_release_value (val_t);
|
||||
|
||||
jerry_cleanup ();
|
||||
|
||||
TEST_ASSERT (test_api_is_free_callback_was_called);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user