mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Add delete_property_by_index to the API
JerryScript-DCO-1.0-Signed-off-by: Marko Fabo mfabo@inf.u-szeged.hu
This commit is contained in:
parent
1526bcc8c3
commit
af2868ddb7
@ -2943,9 +2943,55 @@ jerry_delete_property (const jerry_value_t obj_val,
|
||||
|
||||
- [jerry_has_property](#jerry_has_property)
|
||||
- [jerry_has_own_property](#jerry_has_own_property)
|
||||
- [jerry_delete_property_by_index](#jerry_delete_property_by_index)
|
||||
- [jerry_get_property](#jerry_get_property)
|
||||
|
||||
|
||||
## jerry_delete_property_by_index
|
||||
|
||||
**Summary**
|
||||
|
||||
Delete indexed property from the specified object.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
bool
|
||||
jerry_delete_property_by_index (const jerry_value_t obj_val,
|
||||
uint32_t index);
|
||||
```
|
||||
|
||||
- `obj_val` - object value
|
||||
- `index` - index number
|
||||
- return value
|
||||
- true, if property was deleted successfully
|
||||
- false, otherwise
|
||||
|
||||
**Example**
|
||||
|
||||
```c
|
||||
{
|
||||
jerry_value_t object;
|
||||
|
||||
... // create or acquire object
|
||||
|
||||
jerry_delete_property_by_index (object, 5);
|
||||
|
||||
jerry_release_value (object);
|
||||
}
|
||||
```
|
||||
|
||||
**See also**
|
||||
|
||||
- [jerry_has_property](#jerry_has_property)
|
||||
- [jerry_has_own_property](#jerry_has_own_property)
|
||||
- [jerry_delete_property](#jerry_delete_property)
|
||||
- [jerry_get_property](#jerry_get_property)
|
||||
- [jerry_set_property](#jerry_set_property)
|
||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
||||
- [jerry_set_property_by_index](#jerry_set_property_by_index)
|
||||
|
||||
|
||||
## jerry_get_property
|
||||
|
||||
**Summary**
|
||||
@ -2988,6 +3034,7 @@ jerry_get_property (const jerry_value_t obj_val,
|
||||
- [jerry_has_property](#jerry_has_property)
|
||||
- [jerry_has_own_property](#jerry_has_own_property)
|
||||
- [jerry_delete_property](#jerry_delete_property)
|
||||
- [jerry_delete_property_by_index](#jerry_delete_property_by_index)
|
||||
- [jerry_set_property](#jerry_set_property)
|
||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
||||
- [jerry_set_property_by_index](#jerry_set_property_by_index)
|
||||
@ -3038,6 +3085,7 @@ jerry_get_property_by_index (const jerry_value_t obj_val,
|
||||
- [jerry_has_property](#jerry_has_property)
|
||||
- [jerry_has_own_property](#jerry_has_own_property)
|
||||
- [jerry_delete_property](#jerry_delete_property)
|
||||
- [jerry_delete_property_by_index](#jerry_delete_property_by_index)
|
||||
- [jerry_get_property](#jerry_get_property)
|
||||
- [jerry_set_property](#jerry_set_property)
|
||||
- [jerry_set_property_by_index](#jerry_set_property_by_index)
|
||||
@ -3098,6 +3146,7 @@ jerry_set_property (const jerry_value_t obj_val,
|
||||
- [jerry_has_property](#jerry_has_property)
|
||||
- [jerry_has_own_property](#jerry_has_own_property)
|
||||
- [jerry_delete_property](#jerry_delete_property)
|
||||
- [jerry_delete_property_by_index](#jerry_delete_property_by_index)
|
||||
- [jerry_get_property](#jerry_get_property)
|
||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
||||
- [jerry_set_property_by_index](#jerry_set_property_by_index)
|
||||
@ -3152,6 +3201,7 @@ jerry_set_property_by_index (const jerry_value_t obj_val,
|
||||
- [jerry_has_property](#jerry_has_property)
|
||||
- [jerry_has_own_property](#jerry_has_own_property)
|
||||
- [jerry_delete_property](#jerry_delete_property)
|
||||
- [jerry_delete_property_by_index](#jerry_delete_property_by_index)
|
||||
- [jerry_get_property](#jerry_get_property)
|
||||
- [jerry_set_property](#jerry_set_property)
|
||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
||||
|
||||
@ -1474,6 +1474,31 @@ jerry_delete_property (const jerry_value_t obj_val, /**< object value */
|
||||
return ecma_is_value_true (ret_value);
|
||||
} /* jerry_delete_property */
|
||||
|
||||
/**
|
||||
* Delete indexed property from the specified object.
|
||||
*
|
||||
* @return true - if property was deleted successfully
|
||||
* false - otherwise
|
||||
*/
|
||||
bool
|
||||
jerry_delete_property_by_index (const jerry_value_t obj_val, /**< object value */
|
||||
uint32_t index) /**< index to be written */
|
||||
{
|
||||
jerry_assert_api_available ();
|
||||
|
||||
if (!ecma_is_value_object (obj_val))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ecma_string_t str_idx;
|
||||
ecma_init_ecma_string_from_uint32 (&str_idx, index);
|
||||
ecma_value_t ret_value = ecma_op_object_delete (ecma_get_object_from_value (obj_val),
|
||||
&str_idx,
|
||||
false);
|
||||
return ecma_is_value_true (ret_value);
|
||||
} /* jerry_delete_property_by_index */
|
||||
|
||||
/**
|
||||
* Get value of a property to the specified object with the given name.
|
||||
*
|
||||
|
||||
@ -357,6 +357,7 @@ jerry_value_t jerry_create_undefined (void);
|
||||
jerry_value_t jerry_has_property (const jerry_value_t obj_val, const jerry_value_t prop_name_val);
|
||||
jerry_value_t jerry_has_own_property (const jerry_value_t obj_val, const jerry_value_t prop_name_val);
|
||||
bool jerry_delete_property (const jerry_value_t obj_val, const jerry_value_t prop_name_val);
|
||||
bool jerry_delete_property_by_index (const jerry_value_t obj_val, uint32_t index);
|
||||
|
||||
jerry_value_t jerry_get_property (const jerry_value_t obj_val, const jerry_value_t prop_name_val);
|
||||
jerry_value_t jerry_get_property_by_index (const jerry_value_t obj_val, uint32_t index);
|
||||
|
||||
@ -896,8 +896,14 @@ main (void)
|
||||
TEST_ASSERT (jerry_value_is_number (v_out)
|
||||
&& jerry_get_number_value (v_out) == 10.5);
|
||||
|
||||
jerry_delete_property_by_index (array_obj_val, 5);
|
||||
jerry_value_t v_und = jerry_get_property_by_index (array_obj_val, 5);
|
||||
|
||||
TEST_ASSERT (jerry_value_is_undefined (v_und));
|
||||
|
||||
jerry_release_value (v_in);
|
||||
jerry_release_value (v_out);
|
||||
jerry_release_value (v_und);
|
||||
jerry_release_value (array_obj_val);
|
||||
|
||||
/* Test: init property descriptor */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user