Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 40 additions & 41 deletions docs/02.API-REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -1089,6 +1089,45 @@ jerry_get_global_object (void);

Functions to check the type of an API value ([jerry_value_t](#jerry_value_t)).

## jerry_value_is_abort

**Summary**

Returns whether the given `jerry_value_t` has the error and abort value set.

**Prototype**

```c
bool
jerry_value_is_abort (const jerry_value_t value);
```

- `value` - api value
- return value
- true, if the given `jerry_value_t` has the error and abort value set
- false, otherwise

**Example**

```c
{
jerry_value_t value;
... // create or acquire value

if (jerry_value_is_abort (value))
{
...
}

jerry_release_value (value);
}
```

**See also**

- [jerry_value_t](#jerry_value_t)
- [jerry_value_is_error](#jerry_value_is_error)

## jerry_value_is_array

**Summary**
Expand Down Expand Up @@ -1281,7 +1320,7 @@ jerry_value_is_error (const jerry_value_t value);
**See also**

- [jerry_value_t](#jerry_value_t)
- [jerry_value_has_abort_flag](#jerry_value_has_abort_flag)
- [jerry_value_is_abort](#jerry_value_is_abort)

## jerry_value_is_function

Expand Down Expand Up @@ -1712,46 +1751,6 @@ jerry_get_error_type (const jerry_value_t value);
- [jerry_create_error](#jerry_create_error)
- [jerry_value_is_error](#jerry_value_is_error)

## jerry_value_has_abort_flag

**Summary**

Returns whether the given `jerry_value_t` has the error and abort flags set.

**Prototype**

```c
bool
jerry_value_has_abort_flag (const jerry_value_t value);
```

- `value` - api value
- return value
- true, if the given `jerry_value_t` has the error and abort flags set
- false, otherwise

**Example**

```c
{
jerry_value_t value;
... // create or acquire value

if (jerry_value_has_abort_flag (value))
{
...
}

jerry_release_value (value);
}
```

**See also**

- [jerry_value_t](#jerry_value_t)
- [jerry_value_is_error](#jerry_value_is_error)


## jerry_value_clear_error_flag

**Summary**
Expand Down
46 changes: 23 additions & 23 deletions jerry-core/api/jerry.c
Original file line number Diff line number Diff line change
Expand Up @@ -626,6 +626,27 @@ jerry_get_global_object (void)
return ecma_make_object_value (ecma_builtin_get (ECMA_BUILTIN_ID_GLOBAL));
} /* jerry_get_global_object */

/**
* Check if the specified value is an abort value.
*
* @return true - if both the error and abort values are set,
* false - otherwise
*/
bool
jerry_value_is_abort (const jerry_value_t value) /**< api value */
{
jerry_assert_api_available ();

if (!ecma_is_value_error_reference (value))
{
return false;
}

ecma_error_reference_t *error_ref_p = ecma_get_error_reference_from_value (value);

return (error_ref_p->refs_and_flags & ECMA_ERROR_REF_ABORT) != 0;
} /* jerry_value_is_abort */

/**
* Check if the specified value is an array object value.
*
Expand Down Expand Up @@ -904,27 +925,6 @@ bool jerry_is_feature_enabled (const jerry_feature_t feature)
);
} /* jerry_is_feature_enabled */

/**
* Check if the specified value is an abort value.
*
* @return true - if both the error and abort flags of the specified value are true,
* false - otherwise
*/
bool
jerry_value_has_abort_flag (const jerry_value_t value) /**< api value */
{
jerry_assert_api_available ();

if (!ecma_is_value_error_reference (value))
{
return false;
}

ecma_error_reference_t *error_ref_p = ecma_get_error_reference_from_value (value);

return (error_ref_p->refs_and_flags & ECMA_ERROR_REF_ABORT) != 0;
} /* jerry_value_has_abort_flag */

/**
* Clear the error flag
*/
Expand All @@ -951,7 +951,7 @@ jerry_value_set_error_flag (jerry_value_t *value_p)
{
/* This is a rare case so it is optimized for
* binary size rather than performance. */
if (!jerry_value_has_abort_flag (*value_p))
if (!jerry_value_is_abort (*value_p))
{
return;
}
Expand All @@ -974,7 +974,7 @@ jerry_value_set_abort_flag (jerry_value_t *value_p)
{
/* This is a rare case so it is optimized for
* binary size rather than performance. */
if (jerry_value_has_abort_flag (*value_p))
if (jerry_value_is_abort (*value_p))
{
return;
}
Expand Down
2 changes: 1 addition & 1 deletion jerry-core/include/jerryscript-core.h
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@ jerry_value_t jerry_get_global_object (void);
/**
* Checker functions of 'jerry_value_t'.
*/
bool jerry_value_is_abort (const jerry_value_t value);
bool jerry_value_is_array (const jerry_value_t value);
bool jerry_value_is_boolean (const jerry_value_t value);
bool jerry_value_is_constructor (const jerry_value_t value);
Expand Down Expand Up @@ -373,7 +374,6 @@ bool jerry_is_feature_enabled (const jerry_feature_t feature);
/**
* Error manipulation functions.
*/
bool jerry_value_has_abort_flag (const jerry_value_t value);
void jerry_value_clear_error_flag (jerry_value_t *value_p);
void jerry_value_set_error_flag (jerry_value_t *value_p);
void jerry_value_set_abort_flag (jerry_value_t *value_p);
Expand Down
12 changes: 6 additions & 6 deletions tests/unit-core/test-abort.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ main (void)
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
res = jerry_run (parsed_code_val);

TEST_ASSERT (jerry_value_has_abort_flag (res));
TEST_ASSERT (jerry_value_is_abort (res));

jerry_release_value (res);
jerry_release_value (parsed_code_val);
Expand Down Expand Up @@ -104,26 +104,26 @@ main (void)
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
res = jerry_run (parsed_code_val);

TEST_ASSERT (jerry_value_has_abort_flag (res));
TEST_ASSERT (jerry_value_is_abort (res));

jerry_release_value (res);
jerry_release_value (parsed_code_val);

/* Test flag overwrites. */
jerry_value_t value = jerry_create_string ((jerry_char_t *) "Error description");
TEST_ASSERT (!jerry_value_has_abort_flag (value));
TEST_ASSERT (!jerry_value_is_abort (value));
TEST_ASSERT (!jerry_value_is_error (value));

jerry_value_set_abort_flag (&value);
TEST_ASSERT (jerry_value_has_abort_flag (value));
TEST_ASSERT (jerry_value_is_abort (value));
TEST_ASSERT (jerry_value_is_error (value));

jerry_value_set_error_flag (&value);
TEST_ASSERT (!jerry_value_has_abort_flag (value));
TEST_ASSERT (!jerry_value_is_abort (value));
TEST_ASSERT (jerry_value_is_error (value));

jerry_value_set_abort_flag (&value);
TEST_ASSERT (jerry_value_has_abort_flag (value));
TEST_ASSERT (jerry_value_is_abort (value));
TEST_ASSERT (jerry_value_is_error (value));

jerry_release_value (value);
Expand Down