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** **Prototype**
```c ```c
bool jerry_value_t
jerry_get_own_property_descriptor (const jerry_value_t obj_val, jerry_get_own_property_descriptor (const jerry_value_t obj_val,
const jerry_value_t prop_name_val, const jerry_value_t prop_name_val,
jerry_property_descriptor_t *prop_desc_p); 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 - `prop_desc_p` - pointer to property descriptor
- return value - return value
*Changed in version [[NEXT_RELEASE]]*: return value is changed to `jerry_value_t`
**Example** **Example**
```c ```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 * @return true - if success, the prop_desc_p fields contains the property info
* false - otherwise, the prop_desc_p is unchanged * 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 */ jerry_get_own_property_descriptor (const jerry_value_t obj_val, /**< object value */
const jerry_value_t prop_name_val, /**< property name (string value) */ const jerry_value_t prop_name_val, /**< property name (string value) */
jerry_property_descriptor_t *prop_desc_p) /**< property descriptor */ 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) if (!ecma_is_value_object (obj_val)
|| !ecma_is_value_prop_name (prop_name_val)) || !ecma_is_value_prop_name (prop_name_val))
{ {
return false; return ECMA_VALUE_FALSE;
} }
ecma_property_descriptor_t prop_desc; 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 JERRY_BUILTIN_PROXY
if (ECMA_IS_VALUE_ERROR (status)) if (ECMA_IS_VALUE_ERROR (status))
{ {
// TODO: Due to Proxies the return value must be changed to jerry_value_t on next release return jerry_throw (status);
jcontext_release_exception ();
} }
#endif /* JERRY_BUILTIN_PROXY */ #endif /* JERRY_BUILTIN_PROXY */
if (!ecma_is_value_true (status)) if (!ecma_is_value_true (status))
{ {
return false; return ECMA_VALUE_FALSE;
} }
/* The flags are always filled in the returned descriptor. */ /* 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 */ } /* jerry_get_own_property_descriptor */
/** /**
+1 -1
View File
@@ -225,7 +225,7 @@ jerry_value_t jerry_define_own_property (const jerry_value_t obj_val,
const jerry_value_t prop_name_val, const jerry_value_t prop_name_val,
const jerry_property_descriptor_t *prop_desc_p); const jerry_property_descriptor_t *prop_desc_p);
bool jerry_get_own_property_descriptor (const jerry_value_t obj_val, jerry_value_t jerry_get_own_property_descriptor (const jerry_value_t obj_val,
const jerry_value_t prop_name_val, const jerry_value_t prop_name_val,
jerry_property_descriptor_t *prop_desc_p); jerry_property_descriptor_t *prop_desc_p);
void jerry_property_descriptor_free (const jerry_property_descriptor_t *prop_desc_p); void jerry_property_descriptor_free (const jerry_property_descriptor_t *prop_desc_p);
+7 -4
View File
@@ -63,8 +63,9 @@ main (void)
/* Test: get own property descriptor */ /* Test: get own property descriptor */
prop_desc = jerry_property_descriptor_create (); prop_desc = jerry_property_descriptor_create ();
bool is_ok = jerry_get_own_property_descriptor (global_obj_val, prop_name, &prop_desc); jerry_value_t 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_VALUE_DEFINED); TEST_ASSERT (prop_desc.flags & JERRY_PROP_IS_VALUE_DEFINED);
TEST_ASSERT (jerry_value_is_string (prop_desc.value)); TEST_ASSERT (jerry_value_is_string (prop_desc.value));
TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_WRITABLE)); TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_WRITABLE));
@@ -86,7 +87,8 @@ main (void)
jerry_release_value (target); jerry_release_value (target);
jerry_release_value (handler); jerry_release_value (handler);
is_ok = jerry_get_own_property_descriptor (proxy, prop_name, &prop_desc); 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); jerry_release_value (proxy);
} }
@@ -102,7 +104,8 @@ main (void)
jerry_release_value (res); jerry_release_value (res);
jerry_property_descriptor_free (&prop_desc); jerry_property_descriptor_free (&prop_desc);
is_ok = jerry_get_own_property_descriptor (global_obj_val, prop_name, &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_WRITABLE));
TEST_ASSERT (prop_desc.flags & JERRY_PROP_IS_ENUMERABLE); TEST_ASSERT (prop_desc.flags & JERRY_PROP_IS_ENUMERABLE);
TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_CONFIGURABLE)); TEST_ASSERT (!(prop_desc.flags & JERRY_PROP_IS_CONFIGURABLE));