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:
@@ -1758,6 +1758,77 @@ jerry_create_number (double value);
|
|||||||
**See also**
|
**See also**
|
||||||
|
|
||||||
- [jerry_release_value](#jerry_release_value)
|
- [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
|
## 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_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_external_function (jerry_external_handler_t);
|
||||||
jerry_value_t jerry_create_number (double);
|
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_null (void);
|
||||||
jerry_value_t jerry_create_object (void);
|
jerry_value_t jerry_create_object (void);
|
||||||
jerry_value_t jerry_create_string (const jerry_char_t *);
|
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);
|
return ecma_make_number_value ((ecma_number_t) value);
|
||||||
} /* jerry_create_number */
|
} /* 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.
|
* Creates and returns a jerry_value_t with type null object.
|
||||||
*
|
*
|
||||||
|
|||||||
+18
-1
@@ -309,6 +309,7 @@ main (void)
|
|||||||
jerry_value_t throw_test_handler_val;
|
jerry_value_t throw_test_handler_val;
|
||||||
jerry_value_t parsed_code_val, proto_val, prim_val;
|
jerry_value_t parsed_code_val, proto_val, prim_val;
|
||||||
jerry_value_t res, args[2];
|
jerry_value_t res, args[2];
|
||||||
|
double number_val;
|
||||||
char buffer[32];
|
char buffer[32];
|
||||||
|
|
||||||
is_ok = test_run_simple ("print ('Hello, World!');");
|
is_ok = test_run_simple ("print ('Hello, World!');");
|
||||||
@@ -700,9 +701,25 @@ main (void)
|
|||||||
// cleanup.
|
// cleanup.
|
||||||
jerry_release_value (global_obj_val);
|
jerry_release_value (global_obj_val);
|
||||||
|
|
||||||
// TEST: run gc.
|
// Test: run gc.
|
||||||
jerry_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 ();
|
jerry_cleanup ();
|
||||||
|
|
||||||
TEST_ASSERT (test_api_is_free_callback_was_called);
|
TEST_ASSERT (test_api_is_free_callback_was_called);
|
||||||
|
|||||||
Reference in New Issue
Block a user