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:
@@ -2943,9 +2943,55 @@ jerry_delete_property (const jerry_value_t obj_val,
|
|||||||
|
|
||||||
- [jerry_has_property](#jerry_has_property)
|
- [jerry_has_property](#jerry_has_property)
|
||||||
- [jerry_has_own_property](#jerry_has_own_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_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
|
## jerry_get_property
|
||||||
|
|
||||||
**Summary**
|
**Summary**
|
||||||
@@ -2988,6 +3034,7 @@ jerry_get_property (const jerry_value_t obj_val,
|
|||||||
- [jerry_has_property](#jerry_has_property)
|
- [jerry_has_property](#jerry_has_property)
|
||||||
- [jerry_has_own_property](#jerry_has_own_property)
|
- [jerry_has_own_property](#jerry_has_own_property)
|
||||||
- [jerry_delete_property](#jerry_delete_property)
|
- [jerry_delete_property](#jerry_delete_property)
|
||||||
|
- [jerry_delete_property_by_index](#jerry_delete_property_by_index)
|
||||||
- [jerry_set_property](#jerry_set_property)
|
- [jerry_set_property](#jerry_set_property)
|
||||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
||||||
- [jerry_set_property_by_index](#jerry_set_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_property](#jerry_has_property)
|
||||||
- [jerry_has_own_property](#jerry_has_own_property)
|
- [jerry_has_own_property](#jerry_has_own_property)
|
||||||
- [jerry_delete_property](#jerry_delete_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](#jerry_get_property)
|
||||||
- [jerry_set_property](#jerry_set_property)
|
- [jerry_set_property](#jerry_set_property)
|
||||||
- [jerry_set_property_by_index](#jerry_set_property_by_index)
|
- [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_property](#jerry_has_property)
|
||||||
- [jerry_has_own_property](#jerry_has_own_property)
|
- [jerry_has_own_property](#jerry_has_own_property)
|
||||||
- [jerry_delete_property](#jerry_delete_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](#jerry_get_property)
|
||||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
||||||
- [jerry_set_property_by_index](#jerry_set_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_property](#jerry_has_property)
|
||||||
- [jerry_has_own_property](#jerry_has_own_property)
|
- [jerry_has_own_property](#jerry_has_own_property)
|
||||||
- [jerry_delete_property](#jerry_delete_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](#jerry_get_property)
|
||||||
- [jerry_set_property](#jerry_set_property)
|
- [jerry_set_property](#jerry_set_property)
|
||||||
- [jerry_get_property_by_index](#jerry_get_property_by_index)
|
- [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);
|
return ecma_is_value_true (ret_value);
|
||||||
} /* jerry_delete_property */
|
} /* 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.
|
* 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_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);
|
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 (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 (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);
|
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)
|
TEST_ASSERT (jerry_value_is_number (v_out)
|
||||||
&& jerry_get_number_value (v_out) == 10.5);
|
&& 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_in);
|
||||||
jerry_release_value (v_out);
|
jerry_release_value (v_out);
|
||||||
|
jerry_release_value (v_und);
|
||||||
jerry_release_value (array_obj_val);
|
jerry_release_value (array_obj_val);
|
||||||
|
|
||||||
/* Test: init property descriptor */
|
/* Test: init property descriptor */
|
||||||
|
|||||||
Reference in New Issue
Block a user