diff --git a/docs/02.API-REFERENCE.md b/docs/02.API-REFERENCE.md index 993054060..cf94886c5 100644 --- a/docs/02.API-REFERENCE.md +++ b/docs/02.API-REFERENCE.md @@ -2126,6 +2126,85 @@ jerry_value_is_boolean (const jerry_value_t value) - [jerry_release_value](#jerry_release_value) +## jerry_value_is_true + +**Summary** + +Returns whether the given `jerry_value_t` is a true value. + +**Prototype** + +```c +bool +jerry_value_is_true (const jerry_value_t value); +``` + +- `value` - api value +- return value + - true, if the given `jerry_value_t` is true value + - false, otherwise + +*New in version [[NEXT_RELEASE]]*. + +**Example** + +```c +{ + jerry_value_t value; + ... // create or acquire value + + if (jerry_value_is_true (value)) + { + ... + } + + jerry_release_value (value); +} +``` + +**See also** + +- [jerry_release_value](#jerry_release_value) + +## jerry_value_is_false + +**Summary** + +Returns whether the given `jerry_value_t` is a false value. + +**Prototype** + +```c +bool +jerry_value_is_false (const jerry_value_t value); +``` + +- `value` - api value +- return value + - true, if the given `jerry_value_t` is false value + - false, otherwise + +*New in version [[NEXT_RELEASE]]*. + +**Example** + +```c +{ + jerry_value_t value; + ... // create or acquire value + + if (jerry_value_is_false (value)) + { + ... + } + + jerry_release_value (value); +} +``` + +**See also** + +- [jerry_release_value](#jerry_release_value) ## jerry_value_is_constructor diff --git a/jerry-core/api/jerry.c b/jerry-core/api/jerry.c index 09d538c1a..7b9e3ed19 100644 --- a/jerry-core/api/jerry.c +++ b/jerry-core/api/jerry.c @@ -1185,6 +1185,34 @@ jerry_value_is_boolean (const jerry_value_t value) /**< api value */ return ecma_is_value_boolean (value); } /* jerry_value_is_boolean */ +/** + * Check if the specified value is true. + * + * @return true - if the specified value is true + * false - otherwise + */ +bool +jerry_value_is_true (const jerry_value_t value) /**< api value */ +{ + jerry_assert_api_available (); + + return ecma_is_value_true (value); +} /* jerry_value_is_true */ + +/** + * Check if the specified value is false. + * + * @return true - if the specified value is false + * false - otherwise + */ +bool +jerry_value_is_false (const jerry_value_t value) /**< api value */ +{ + jerry_assert_api_available (); + + return ecma_is_value_false (value); +} /* jerry_value_is_false */ + /** * Check if the specified value is a constructor function object value. * diff --git a/jerry-core/include/jerryscript-core.h b/jerry-core/include/jerryscript-core.h index adbfd604f..63f778032 100644 --- a/jerry-core/include/jerryscript-core.h +++ b/jerry-core/include/jerryscript-core.h @@ -78,6 +78,8 @@ bool jerry_value_is_string (const jerry_value_t value); bool jerry_value_is_symbol (const jerry_value_t value); bool jerry_value_is_bigint (const jerry_value_t value); bool jerry_value_is_undefined (const jerry_value_t value); +bool jerry_value_is_true (const jerry_value_t value); +bool jerry_value_is_false (const jerry_value_t value); jerry_type_t jerry_value_get_type (const jerry_value_t value); jerry_object_type_t jerry_object_get_type (const jerry_value_t value); diff --git a/tests/unit-core/test-api.c b/tests/unit-core/test-api.c index 59ad08a81..5a76ac748 100644 --- a/tests/unit-core/test-api.c +++ b/tests/unit-core/test-api.c @@ -164,6 +164,8 @@ handler_construct (const jerry_call_info_t *call_info_p, /**< call information * TEST_ASSERT (jerry_value_is_boolean (args_p[0])); TEST_ASSERT (jerry_get_boolean_value (args_p[0]) == true); + TEST_ASSERT (jerry_value_is_true (args_p[0])); + jerry_value_t this_value = call_info_p->this_value; jerry_value_t field_name = jerry_create_string ((jerry_char_t *) "value_field"); jerry_value_t res = jerry_set_property (this_value, field_name, args_p[0]); @@ -257,6 +259,7 @@ foreach (const jerry_value_t name, /**< field name */ { TEST_ASSERT (jerry_value_is_boolean (value)); TEST_ASSERT (jerry_get_boolean_value (value) == false); + TEST_ASSERT (jerry_value_is_false (value)); return true; } else if (!strncmp (str_buf_p, "charlie", (size_t) sz)) @@ -1116,6 +1119,7 @@ main (void) JERRY_PARSE_NO_OPTS); TEST_ASSERT (jerry_value_is_boolean (res)); TEST_ASSERT (jerry_get_boolean_value (res) == true); + TEST_ASSERT (jerry_value_is_true (res)); jerry_release_value (res);