Implement from and to property descriptor API function (#4245)
Also added two new helper method: ecma_property_descriptor -> jerry_property_descriptor converter method jerry_property_descriptor -> ecma_property_descriptor converter method JerryScript-DCO-1.0-Signed-off-by: bence gabor kis kisbg@inf.u-szeged.hu
This commit is contained in:
@@ -3911,6 +3911,106 @@ example (void)
|
||||
- [jerry_create_promise](#jerry_create_promise)
|
||||
- [jerry_promise_state_t](#jerry_promise_state_t)
|
||||
|
||||
## jerry_from_property_descriptor
|
||||
|
||||
**Summary**
|
||||
|
||||
This API function is equivalent to FromPropertyDescriptor operation defined in ECMA 262 v11 6.2.5.4.
|
||||
It returns with an ECMAScript Object which represents the property attributes.
|
||||
|
||||
*Notes*:
|
||||
- Returned value must be freed with [jerry_release_value](#jerry_release_value) when it
|
||||
is no longer needed.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
jerry_value_t
|
||||
jerry_from_property_descriptor (const jerry_property_descriptor_t *src_prop_desc_p)
|
||||
```
|
||||
|
||||
- `src_prop_desc_p` - the input property descriptor.
|
||||
- return
|
||||
- [jerry_value_t](#jerry_value_t)
|
||||
- jerry value - if success
|
||||
- value marked with error flag - otherwise
|
||||
|
||||
**Example**
|
||||
|
||||
[doctest]: # (test="compile")
|
||||
|
||||
```c
|
||||
#include <jerryscript.h>
|
||||
|
||||
static void
|
||||
example (void)
|
||||
{
|
||||
jerry_value_t prop_name = jerry_create_string_from_utf8 ((jerry_char_t *) "value");
|
||||
|
||||
jerry_property_descriptor_t prop_desc;
|
||||
jerry_init_property_descriptor_fields (&prop_desc);
|
||||
|
||||
prop_desc.value = prop_name;
|
||||
prop_desc.is_value_defined = true;
|
||||
|
||||
jerry_value_t from_object = jerry_from_property_descriptor (&prop_desc);
|
||||
|
||||
jerry_release_value (prop_name);
|
||||
jerry_release_value (from_object);
|
||||
jerry_free_property_descriptor_fields (&prop_desc);
|
||||
}
|
||||
```
|
||||
|
||||
## jerry_to_property_descriptor
|
||||
|
||||
**Summary**
|
||||
|
||||
This API function is equivalent to ToPropertyDescriptor operation defined in ECMA 262 v11 6.2.5.5.
|
||||
It decodes the ECMAScript object and fills the fields of a JerryScript property descriptor.
|
||||
|
||||
*Notes*:
|
||||
- The es.next profile enables this by default.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
bool
|
||||
jerry_to_property_descriptor (jerry_value_t obj_value, jerry_property_descriptor_t *out_prop_desc_p);
|
||||
```
|
||||
|
||||
- `obj_value` - the input object
|
||||
- `src_prop_desc_p` - the output property descriptor.
|
||||
- return
|
||||
- [jerry_value_t](#jerry_value_t)
|
||||
- true - if success
|
||||
- false - if error occurs
|
||||
|
||||
**Example**
|
||||
|
||||
[doctest]: # (test="compile")
|
||||
|
||||
```c
|
||||
#include <jerryscript.h>
|
||||
|
||||
static void
|
||||
example (void)
|
||||
{
|
||||
jerry_value_t object = jerry_create_object ();
|
||||
jerry_value_t prop_name = jerry_create_string_from_utf8 ((jerry_char_t *) "value");
|
||||
jerry_value_t value = jerry_create_boolean (true);
|
||||
jerry_property_descriptor_t prop_desc;
|
||||
|
||||
jerry_set_property (object, prop_name, prop_name);
|
||||
|
||||
jerry_to_property_descriptor (object, &prop_desc);
|
||||
|
||||
jerry_release_value (object);
|
||||
jerry_release_value (prop_name);
|
||||
jerry_release_value (value);
|
||||
jerry_free_property_descriptor_fields (&prop_desc);
|
||||
}
|
||||
```
|
||||
|
||||
## jerry_resolve_or_reject_promise
|
||||
|
||||
**Summary**
|
||||
|
||||
Reference in New Issue
Block a user