Remove class id storing for class objects (#4645)

The two bytes which stored the id is free to use. Currently the only exception is containers.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2021-04-08 14:46:16 +02:00
committed by GitHub
parent 2381078e80
commit ef35c0329c
22 changed files with 227 additions and 207 deletions
@@ -739,7 +739,6 @@ ecma_builtin_date_create (ecma_number_t tv)
ecma_date_object_t *date_object_p = (ecma_date_object_t *) obj_p;
date_object_p->header.u.cls.type = ECMA_OBJECT_CLASS_DATE;
date_object_p->header.u.cls.u1.date_flags = ECMA_DATE_TZA_NONE;
date_object_p->header.u.cls.u2.id = LIT_MAGIC_STRING_DATE_UL;
date_object_p->header.u.cls.u3.tza = 0;
date_object_p->date_value = tv;
#else /* !JERRY_ESNEXT */
@@ -751,7 +750,6 @@ ecma_builtin_date_create (ecma_number_t tv)
ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p;
ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_DATE;
ext_object_p->u.cls.u2.id = LIT_MAGIC_STRING_DATE_UL;
ECMA_SET_INTERNAL_VALUE_POINTER (ext_object_p->u.cls.u3.date, date_value_p);
#endif /* JERRY_ESNEXT */
@@ -82,7 +82,6 @@ ecma_builtin_weakref_dispatch_construct (const ecma_value_t *arguments_list_p, /
ecma_deref_object (proto_p);
ecma_extended_object_t *ext_obj_p = (ecma_extended_object_t *) object_p;
ext_obj_p->u.cls.type = ECMA_OBJECT_CLASS_WEAKREF;
ext_obj_p->u.cls.u2.id = LIT_MAGIC_STRING_WEAKREF_UL;
ext_obj_p->u.cls.u3.target = arguments_list_p[0];
ecma_op_object_set_weak (ecma_get_object_from_value (arguments_list_p[0]), object_p);
@@ -464,7 +464,6 @@ ecma_instantiate_builtin (ecma_global_object_t *global_object_p, /**< global obj
ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p;
ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_STRING;
ext_object_p->u.cls.u2.id = LIT_MAGIC_STRING_STRING_UL;
ext_object_p->u.cls.u3.value = ecma_make_magic_string_value (LIT_MAGIC_STRING__EMPTY);
break;
}
@@ -477,7 +476,6 @@ ecma_instantiate_builtin (ecma_global_object_t *global_object_p, /**< global obj
ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p;
ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_NUMBER;
ext_object_p->u.cls.u2.id = LIT_MAGIC_STRING_NUMBER_UL;
ext_object_p->u.cls.u3.value = ecma_make_integer_value (0);
break;
}
@@ -490,7 +488,6 @@ ecma_instantiate_builtin (ecma_global_object_t *global_object_p, /**< global obj
ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p;
ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_BOOLEAN;
ext_object_p->u.cls.u2.id = LIT_MAGIC_STRING_BOOLEAN_UL;
ext_object_p->u.cls.u3.value = ECMA_VALUE_FALSE;
break;
}
@@ -504,7 +501,6 @@ ecma_instantiate_builtin (ecma_global_object_t *global_object_p, /**< global obj
ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p;
ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_DATE;
ext_object_p->u.cls.u2.id = LIT_MAGIC_STRING_DATE_UL;
ecma_number_t *prim_prop_num_value_p = ecma_alloc_number ();
*prim_prop_num_value_p = ecma_number_make_nan ();
@@ -520,7 +516,6 @@ ecma_instantiate_builtin (ecma_global_object_t *global_object_p, /**< global obj
ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p;
ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_REGEXP;
ext_object_p->u.cls.u2.id = LIT_MAGIC_STRING_REGEXP_UL;
re_compiled_code_t *bc_p = re_compile_bytecode (ecma_get_magic_string (LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP),
RE_FLAG_EMPTY);
@@ -1863,8 +1863,8 @@ ecma_builtin_typedarray_prototype_dispatch_routine (uint8_t builtin_routine_id,
}
case ECMA_TYPEDARRAY_PROTOTYPE_ROUTINE_TO_STRING_TAG_GETTER:
{
ecma_extended_object_t *obj_p = (ecma_extended_object_t *) typedarray_p;
return ecma_make_magic_string_value (obj_p->u.cls.u2.id);
ecma_extended_object_t *object_p = (ecma_extended_object_t *) typedarray_p;
return ecma_make_magic_string_value (ecma_get_typedarray_magic_string_id (object_p->u.cls.u1.typedarray_type));
}
default:
{