Remove vm_helper_for_in_enumerate_properties_names helper; introduce ecma_op_object_get_property_names interface for building list of an object's properties.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
Ruben Ayrapetyan
2015-10-30 14:47:37 +03:00
parent 841c1ed61c
commit 72208a61ee
4 changed files with 283 additions and 156 deletions
+14
View File
@@ -344,6 +344,9 @@ ecma_get_lex_env_outer_reference (const ecma_object_t *object_p) /**< lexical en
/**
* Get object's/lexical environment's property list.
*
* See also:
* ecma_op_object_get_property_names
*/
ecma_property_t* __attr_pure___
ecma_get_property_list (const ecma_object_t *object_p) /**< object or lexical environment */
@@ -362,6 +365,9 @@ ecma_get_property_list (const ecma_object_t *object_p) /**< object or lexical en
/**
* Set object's/lexical environment's property list.
*
* See also:
* ecma_op_object_get_property_names
*/
static void
ecma_set_property_list (ecma_object_t *object_p, /**< object or lexical environment */
@@ -526,6 +532,10 @@ ecma_create_named_data_property (ecma_object_t *obj_p, /**< object */
ecma_set_named_data_property_value (prop_p, ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
/*
* See also:
* ecma_op_object_get_property_names
*/
ecma_property_t *list_head_p = ecma_get_property_list (obj_p);
ECMA_SET_POINTER (prop_p->next_property_p, list_head_p);
ecma_set_property_list (obj_p, prop_p);
@@ -568,6 +578,10 @@ ecma_create_named_accessor_property (ecma_object_t *obj_p, /**< object */
ECMA_SET_NON_NULL_POINTER (prop_p->u.named_accessor_property.getter_setter_pair_cp, getter_setter_pointers_p);
/*
* See also:
* ecma_op_object_get_property_names
*/
ecma_property_t *list_head_p = ecma_get_property_list (obj_p);
ECMA_SET_POINTER (prop_p->next_property_p, list_head_p);
ecma_set_property_list (obj_p, prop_p);