Change jerry_get_own_property_descriptor return type (#4675)

JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi csgergo92@gmail.com
This commit is contained in:
Gergo Csizi
2021-05-26 04:54:26 +00:00
committed by GitHub
parent 431a28b902
commit 800031c62b
4 changed files with 18 additions and 14 deletions
+3 -1
View File
@@ -8475,7 +8475,7 @@ Construct property descriptor from specified property.
**Prototype**
```c
bool
jerry_value_t
jerry_get_own_property_descriptor (const jerry_value_t obj_val,
const jerry_value_t prop_name_val,
jerry_property_descriptor_t *prop_desc_p);
@@ -8486,6 +8486,8 @@ jerry_get_own_property_descriptor (const jerry_value_t obj_val,
- `prop_desc_p` - pointer to property descriptor
- return value
*Changed in version [[NEXT_RELEASE]]*: return value is changed to `jerry_value_t`
**Example**
```c
+5 -6
View File
@@ -3830,7 +3830,7 @@ jerry_define_own_property (const jerry_value_t obj_val, /**< object value */
* @return true - if success, the prop_desc_p fields contains the property info
* false - otherwise, the prop_desc_p is unchanged
*/
bool
jerry_value_t
jerry_get_own_property_descriptor (const jerry_value_t obj_val, /**< object value */
const jerry_value_t prop_name_val, /**< property name (string value) */
jerry_property_descriptor_t *prop_desc_p) /**< property descriptor */
@@ -3840,7 +3840,7 @@ jerry_get_own_property_descriptor (const jerry_value_t obj_val, /**< object val
if (!ecma_is_value_object (obj_val)
|| !ecma_is_value_prop_name (prop_name_val))
{
return false;
return ECMA_VALUE_FALSE;
}
ecma_property_descriptor_t prop_desc;
@@ -3852,14 +3852,13 @@ jerry_get_own_property_descriptor (const jerry_value_t obj_val, /**< object val
#if JERRY_BUILTIN_PROXY
if (ECMA_IS_VALUE_ERROR (status))
{
// TODO: Due to Proxies the return value must be changed to jerry_value_t on next release
jcontext_release_exception ();
return jerry_throw (status);
}
#endif /* JERRY_BUILTIN_PROXY */
if (!ecma_is_value_true (status))
{
return false;
return ECMA_VALUE_FALSE;
}
/* The flags are always filled in the returned descriptor. */
@@ -3902,7 +3901,7 @@ jerry_get_own_property_descriptor (const jerry_value_t obj_val, /**< object val
}
}
return true;
return ECMA_VALUE_TRUE;
} /* jerry_get_own_property_descriptor */
/**
+3 -3
View File
@@ -225,9 +225,9 @@ jerry_value_t jerry_define_own_property (const jerry_value_t obj_val,
const jerry_value_t prop_name_val,
const jerry_property_descriptor_t *prop_desc_p);
bool jerry_get_own_property_descriptor (const jerry_value_t obj_val,
const jerry_value_t prop_name_val,
jerry_property_descriptor_t *prop_desc_p);
jerry_value_t jerry_get_own_property_descriptor (const jerry_value_t obj_val,
const jerry_value_t prop_name_val,
jerry_property_descriptor_t *prop_desc_p);
void jerry_property_descriptor_free (const jerry_property_descriptor_t *prop_desc_p);
jerry_value_t jerry_call_function (const jerry_value_t func_obj_val, const jerry_value_t this_val,
+7 -4
View File
@@ -63,8 +63,9 @@ main (void)
/* Test: get own property descriptor */
prop_desc = jerry_property_descriptor_create ();
bool is_ok = jerry_get_own_property_descriptor (global_obj_val, prop_name, &prop_desc);
TEST_ASSERT (is_ok);
jerry_value_t is_ok = jerry_get_own_property_descriptor (global_obj_val, prop_name, &prop_desc);
TEST_ASSERT (jerry_value_is_boolean (is_ok) && jerry_get_boolean_value (is_ok));
jerry_release_value (is_ok);
TEST_ASSERT (prop_desc.flags & JERRY_PROP_IS_VALUE_DEFINED);
TEST_ASSERT (jerry_value_is_string (prop_desc.value));
TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_WRITABLE));
@@ -86,7 +87,8 @@ main (void)
jerry_release_value (target);
jerry_release_value (handler);
is_ok = jerry_get_own_property_descriptor (proxy, prop_name, &prop_desc);
TEST_ASSERT (!is_ok);
TEST_ASSERT (jerry_value_is_boolean (is_ok) && !jerry_get_boolean_value (is_ok));
jerry_release_value (is_ok);
jerry_release_value (proxy);
}
@@ -102,7 +104,8 @@ main (void)
jerry_release_value (res);
jerry_property_descriptor_free (&prop_desc);
is_ok = jerry_get_own_property_descriptor (global_obj_val, prop_name, &prop_desc);
TEST_ASSERT (is_ok);
TEST_ASSERT (jerry_value_is_boolean (is_ok) && jerry_get_boolean_value (is_ok));
jerry_release_value (is_ok);
TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_WRITABLE));
TEST_ASSERT (prop_desc.flags & JERRY_PROP_IS_ENUMERABLE);
TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_CONFIGURABLE));