@@ -511,10 +511,10 @@ ecma_create_named_data_property (ecma_object_t *obj_p, /**< object */
511
511
JERRY_ASSERT (ecma_find_named_property (obj_p, name_p) == NULL );
512
512
513
513
ecma_property_t *prop_p = ecma_alloc_property ();
514
+ name_p = ecma_copy_or_ref_ecma_string (name_p);
514
515
515
516
prop_p->type = ECMA_PROPERTY_NAMEDDATA;
516
517
517
- name_p = ecma_copy_or_ref_ecma_string (name_p);
518
518
ECMA_SET_NON_NULL_POINTER (prop_p->u .named_data_property .name_p , name_p);
519
519
520
520
prop_p->u .named_data_property .writable = is_writable ? ECMA_PROPERTY_WRITABLE : ECMA_PROPERTY_NOT_WRITABLE;
@@ -526,12 +526,12 @@ ecma_create_named_data_property (ecma_object_t *obj_p, /**< object */
526
526
527
527
ecma_set_named_data_property_value (prop_p, ecma_make_simple_value (ECMA_SIMPLE_VALUE_UNDEFINED));
528
528
529
- ecma_lcache_invalidate (obj_p, name_p, NULL );
530
-
531
529
ecma_property_t *list_head_p = ecma_get_property_list (obj_p);
532
530
ECMA_SET_POINTER (prop_p->next_property_p , list_head_p);
533
531
ecma_set_property_list (obj_p, prop_p);
534
532
533
+ ecma_lcache_invalidate (obj_p, name_p, NULL );
534
+
535
535
return prop_p;
536
536
} /* ecma_create_named_data_property */
537
537
@@ -552,10 +552,11 @@ ecma_create_named_accessor_property (ecma_object_t *obj_p, /**< object */
552
552
JERRY_ASSERT (ecma_find_named_property (obj_p, name_p) == NULL );
553
553
554
554
ecma_property_t *prop_p = ecma_alloc_property ();
555
+ ecma_getter_setter_pointers_t *getter_setter_pointers_p = ecma_alloc_getter_setter_pointers ();
556
+ name_p = ecma_copy_or_ref_ecma_string (name_p);
555
557
556
558
prop_p->type = ECMA_PROPERTY_NAMEDACCESSOR;
557
559
558
- name_p = ecma_copy_or_ref_ecma_string (name_p);
559
560
ECMA_SET_NON_NULL_POINTER (prop_p->u .named_accessor_property .name_p , name_p);
560
561
561
562
prop_p->u .named_accessor_property .enumerable = (is_enumerable ?
@@ -565,21 +566,20 @@ ecma_create_named_accessor_property (ecma_object_t *obj_p, /**< object */
565
566
566
567
prop_p->u .named_accessor_property .is_lcached = false ;
567
568
568
- ecma_lcache_invalidate (obj_p, name_p, NULL );
569
+ ECMA_SET_NON_NULL_POINTER (prop_p-> u . named_accessor_property . getter_setter_pair_cp , getter_setter_pointers_p );
569
570
570
571
ecma_property_t *list_head_p = ecma_get_property_list (obj_p);
571
572
ECMA_SET_POINTER (prop_p->next_property_p , list_head_p);
572
573
ecma_set_property_list (obj_p, prop_p);
573
574
574
- ecma_getter_setter_pointers_t *getter_setter_pointers_p = ecma_alloc_getter_setter_pointers ();
575
- ECMA_SET_NON_NULL_POINTER (prop_p->u .named_accessor_property .getter_setter_pair_cp , getter_setter_pointers_p);
576
-
577
575
/*
578
576
* Should be performed after linking the property into object's property list, because the setters assert that.
579
577
*/
580
578
ecma_set_named_accessor_property_getter (obj_p, prop_p, get_p);
581
579
ecma_set_named_accessor_property_setter (obj_p, prop_p, set_p);
582
580
581
+ ecma_lcache_invalidate (obj_p, name_p, NULL );
582
+
583
583
return prop_p;
584
584
} /* ecma_create_named_accessor_property */
585
585
0 commit comments