@@ -60,9 +60,6 @@ JERRY_STATIC_ASSERT ((ECMA_OBJECT_MAX_REF | (ECMA_OBJECT_REF_ONE - 1)) == UINT16
6060JERRY_STATIC_ASSERT (ECMA_PROPERTY_TYPE_DELETED == (ECMA_DIRECT_STRING_MAGIC << ECMA_PROPERTY_NAME_TYPE_SHIFT ),
6161 ecma_property_type_deleted_must_have_magic_string_name_type );
6262
63- JERRY_STATIC_ASSERT (ECMA_PROPERTY_DELETED_NAME >= LIT_MAGIC_STRING__COUNT ,
64- ecma_property_deleted_name_must_not_be_valid_maigc_string_id );
65-
6663/**
6764 * Create an object with specified prototype object
6865 * (or NULL prototype if there is not prototype for the object)
@@ -468,7 +465,7 @@ ecma_create_property (ecma_object_t *object_p, /**< the object */
468465 /* Just copy the previous value (no need to decompress, compress). */
469466 first_property_pair_p -> header .next_property_cp = * property_list_head_p ;
470467 first_property_pair_p -> header .types [0 ] = ECMA_PROPERTY_TYPE_DELETED ;
471- first_property_pair_p -> names_cp [0 ] = ECMA_PROPERTY_DELETED_NAME ;
468+ first_property_pair_p -> names_cp [0 ] = LIT_INTERNAL_MAGIC_STRING_DELETED ;
472469
473470 if (name_p == NULL )
474471 {
@@ -743,19 +740,11 @@ ecma_free_property (ecma_object_t *object_p, /**< object the property belongs to
743740 {
744741 case ECMA_PROPERTY_TYPE_NAMEDDATA :
745742 {
746- if (ECMA_PROPERTY_GET_NAME_TYPE (* property_p ) == ECMA_DIRECT_STRING_MAGIC
747- && (name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER ))
748- {
749- ecma_free_native_pointer (property_p );
750- break ;
751- }
752-
753743 ecma_free_value_if_not_object (ECMA_PROPERTY_VALUE_PTR (property_p )-> value );
754744 break ;
755745 }
756- default :
746+ case ECMA_PROPERTY_TYPE_NAMEDACCESSOR :
757747 {
758- JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR );
759748#ifdef JERRY_CPOINTER_32_BIT
760749 ecma_getter_setter_pointers_t * getter_setter_pair_p ;
761750 getter_setter_pair_p = ECMA_GET_POINTER (ecma_getter_setter_pointers_t ,
@@ -764,6 +753,13 @@ ecma_free_property (ecma_object_t *object_p, /**< object the property belongs to
764753#endif /* JERRY_CPOINTER_32_BIT */
765754 break ;
766755 }
756+ default :
757+ {
758+ JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_INTERNAL );
759+
760+ /* Currently no internal property can reach this point. */
761+ JERRY_UNREACHABLE ();
762+ }
767763 }
768764
769765 if (ecma_is_property_lcached (property_p ))
@@ -821,7 +817,7 @@ ecma_delete_property (ecma_object_t *object_p, /**< object */
821817
822818 ecma_free_property (object_p , prop_pair_p -> names_cp [i ], cur_prop_p -> types + i );
823819 cur_prop_p -> types [i ] = ECMA_PROPERTY_TYPE_DELETED ;
824- prop_pair_p -> names_cp [i ] = ECMA_PROPERTY_DELETED_NAME ;
820+ prop_pair_p -> names_cp [i ] = LIT_INTERNAL_MAGIC_STRING_DELETED ;
825821
826822 JERRY_ASSERT (ECMA_PROPERTY_PAIR_ITEM_COUNT == 2 );
827823
@@ -963,7 +959,7 @@ ecma_delete_array_properties (ecma_object_t *object_p, /**< object */
963959
964960 ecma_free_property (object_p , prop_pair_p -> names_cp [i ], current_prop_p -> types + i );
965961 current_prop_p -> types [i ] = ECMA_PROPERTY_TYPE_DELETED ;
966- prop_pair_p -> names_cp [i ] = ECMA_PROPERTY_DELETED_NAME ;
962+ prop_pair_p -> names_cp [i ] = LIT_INTERNAL_MAGIC_STRING_DELETED ;
967963 }
968964 }
969965 }
@@ -1254,7 +1250,8 @@ inline bool JERRY_ATTR_ALWAYS_INLINE
12541250ecma_is_property_lcached (ecma_property_t * property_p ) /**< property */
12551251{
12561252 JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDDATA
1257- || ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR );
1253+ || ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR
1254+ || ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_INTERNAL );
12581255
12591256 return (* property_p & ECMA_PROPERTY_FLAG_LCACHED ) != 0 ;
12601257} /* ecma_is_property_lcached */
@@ -1267,7 +1264,8 @@ ecma_set_property_lcached (ecma_property_t *property_p, /**< property */
12671264 bool is_lcached ) /**< new value for lcached flag */
12681265{
12691266 JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDDATA
1270- || ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR );
1267+ || ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR
1268+ || ECMA_PROPERTY_GET_TYPE (* property_p ) == ECMA_PROPERTY_TYPE_INTERNAL );
12711269
12721270 if (is_lcached )
12731271 {
0 commit comments