Replace the jerry_value_set_error_flag function with jerry_create_error_from_value (#2367)

JerryScript-DCO-1.0-Signed-off-by: Istvan Miklos imiklos2@inf.u-szeged.hu
This commit is contained in:
Istvan Miklos
2018-06-11 03:16:58 +02:00
committed by yichoi
parent be59d0a224
commit 2d0e37ff74
6 changed files with 83 additions and 33 deletions
+45 -19
View File
@@ -1742,14 +1742,14 @@ jerry_get_value_from_error (jerry_value_t value, bool release)
```c
{
jerry_value_t error;
jerry_value_t value;
... // create or acquire value
jerry_value_set_error_flag (&error);
jerry_value_t value = jerry_get_value_from_error (error, true);
jerry_value_t error = jerry_create_error_from_value (value, true);
jerry_value_t value_from_error = jerry_get_value_from_error (error, true);
// using the 'error' variable after release is invalid.
jerry_release_value (value);
jerry_release_value (value_from_error);
}
```
@@ -1757,14 +1757,14 @@ jerry_get_value_from_error (jerry_value_t value, bool release)
```c
{
jerry_value_t error;
jerry_value_t value;
... // create or acquire value
jerry_value_set_error_flag (&error);
jerry_value_t value = jerry_get_value_from_error (error, false);
// both 'error' and 'value' can be used and must be released when they are no longer needed
jerry_value_t error = jerry_create_error_from_value (value, true);
jerry_value_t value_from_error = jerry_get_value_from_error (error, false);
// both 'error' and 'value_from_error' can be used and must be released when they are no longer needed
jerry_release_value (value);
jerry_release_value (value_from_error);
jerry_release_value (error);
}
```
@@ -1772,33 +1772,59 @@ jerry_get_value_from_error (jerry_value_t value, bool release)
**See also**
- [jerry_value_t](#jerry_value_t)
- [jerry_value_set_error_flag](#jerry_value_set_error_flag)
- [jerry_create_error_from_value](#jerry_create_error_from_value)
- [jerry_value_set_abort_flag](#jerry_value_set_abort_flag)
## jerry_value_set_error_flag
## jerry_create_error_from_value
**Summary**
Set the error flag.
Create (api) error from a value.
This function creates an API error value from an API value. The second argument defines
whether the input value must be released or not. If it is set to `true`,
then a [`jerry_release_value`](#jerry_release_value) function will be called
for the first argument, so the api value won't be available after the call of
`jerry_create_error_from_value`. The second argument should be false if both value
and created error value are needed.
**Prototype**
```c
void
jerry_value_set_error_flag (jerry_value_t *value_p);
jerry_value_t
jerry_create_error_from_value (jerry_value_t value, bool release);
```
- `value_p` - pointer to an api value
- `value` - api value
- `release` - raw boolean, defines whether input value must be released
- return value - error (api) value
**Example**
**Example 1**
```c
{
jerry_value_t value;
... // create or acquire value
jerry_value_set_error_flag (&value);
jerry_value_t error = jerry_create_error_from_value (value, true);
// using the 'value' variable after release is invalid.
jerry_release_value (error);
}
```
**Example 2**
```c
{
jerry_value_t value;
... // create or acquire value
jerry_value_t error = jerry_create_error_from_value (value, false);
// both 'error' and 'value' can be used and must be released when they are no longer needed
jerry_release_value (error);
jerry_release_value (value);
}
```
@@ -1842,7 +1868,7 @@ jerry_value_set_abort_flag (jerry_value_t *value_p);
- [jerry_value_t](#jerry_value_t)
- [jerry_get_value_from_error](#jerry_get_value_from_error)
- [jerry_value_set_error_flag](#jerry_value_set_error_flag)
- [jerry_create_error_from_value](#jerry_create_error_from_value)
# Getter functions of 'jerry_value_t'
@@ -2880,7 +2906,7 @@ jerry_create_error (jerry_error_t error_type,
- [jerry_value_is_error](#jerry_value_is_error)
- [jerry_get_value_from_error](#jerry_get_value_from_error)
- [jerry_value_set_error_flag](#jerry_value_set_error_flag)
- [jerry_create_error_from_value](#jerry_create_error_from_value)
## jerry_create_error_sz