Skip to content

Commit d08b5be

Browse files
authored
Remove built-in flag from object type (#4763)
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
1 parent 723b263 commit d08b5be

23 files changed

+721
-769
lines changed

jerry-core/api/jerry-snapshot.c

-2
Original file line numberDiff line numberDiff line change
@@ -786,8 +786,6 @@ jerry_generate_snapshot (jerry_value_t compiled_code, /**< parsed script or func
786786
}
787787
else if (ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_FUNCTION)
788788
{
789-
JERRY_ASSERT (!ecma_get_object_is_builtin (object_p));
790-
791789
ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p;
792790

793791
bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p);

jerry-core/api/jerry.c

+37-40
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,7 @@ jerry_value_is_array (const jerry_value_t value) /**< jerry api value */
11641164
jerry_assert_api_available ();
11651165

11661166
return (ecma_is_value_object (value)
1167-
&& ecma_get_object_type (ecma_get_object_from_value (value)) == ECMA_OBJECT_TYPE_ARRAY);
1167+
&& ecma_get_object_base_type (ecma_get_object_from_value (value)) == ECMA_OBJECT_BASE_TYPE_ARRAY);
11681168
} /* jerry_value_is_array */
11691169

11701170
/**
@@ -1267,8 +1267,7 @@ jerry_value_is_async_function (const jerry_value_t value) /**< api value */
12671267
{
12681268
ecma_object_t *obj_p = ecma_get_object_from_value (value);
12691269

1270-
if (ecma_get_object_type (obj_p) == ECMA_OBJECT_TYPE_FUNCTION
1271-
&& !ecma_get_object_is_builtin (obj_p))
1270+
if (ecma_get_object_type (obj_p) == ECMA_OBJECT_TYPE_FUNCTION)
12721271
{
12731272
const ecma_compiled_code_t *bytecode_data_p;
12741273
bytecode_data_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) obj_p);
@@ -1593,13 +1592,14 @@ jerry_object_get_type (const jerry_value_t value) /**< input value to check */
15931592

15941593
switch (ecma_get_object_type (obj_p))
15951594
{
1596-
case ECMA_OBJECT_TYPE_FUNCTION:
1597-
case ECMA_OBJECT_TYPE_BOUND_FUNCTION:
1598-
case ECMA_OBJECT_TYPE_NATIVE_FUNCTION:
1595+
case ECMA_OBJECT_TYPE_CLASS:
1596+
case ECMA_OBJECT_TYPE_BUILT_IN_CLASS:
15991597
{
1600-
return JERRY_OBJECT_TYPE_FUNCTION;
1598+
JERRY_ASSERT (ext_obj_p->u.cls.type < ECMA_OBJECT_CLASS__MAX);
1599+
return jerry_class_object_type[ext_obj_p->u.cls.type];
16011600
}
16021601
case ECMA_OBJECT_TYPE_ARRAY:
1602+
case ECMA_OBJECT_TYPE_BUILT_IN_ARRAY:
16031603
{
16041604
return JERRY_OBJECT_TYPE_ARRAY;
16051605
}
@@ -1609,10 +1609,12 @@ jerry_object_get_type (const jerry_value_t value) /**< input value to check */
16091609
return JERRY_OBJECT_TYPE_PROXY;
16101610
}
16111611
#endif /* JERRY_ESNEXT */
1612-
case ECMA_OBJECT_TYPE_CLASS:
1612+
case ECMA_OBJECT_TYPE_FUNCTION:
1613+
case ECMA_OBJECT_TYPE_BOUND_FUNCTION:
1614+
case ECMA_OBJECT_TYPE_NATIVE_FUNCTION:
1615+
case ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION:
16131616
{
1614-
JERRY_ASSERT (ext_obj_p->u.cls.type < ECMA_OBJECT_CLASS__MAX);
1615-
return jerry_class_object_type[ext_obj_p->u.cls.type];
1617+
return JERRY_OBJECT_TYPE_FUNCTION;
16161618
}
16171619
default:
16181620
{
@@ -1646,37 +1648,35 @@ jerry_function_get_type (const jerry_value_t value) /**< input value to check */
16461648
return JERRY_FUNCTION_TYPE_BOUND;
16471649
}
16481650
case ECMA_OBJECT_TYPE_NATIVE_FUNCTION:
1651+
case ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION:
16491652
{
16501653
return JERRY_FUNCTION_TYPE_GENERIC;
16511654
}
16521655
case ECMA_OBJECT_TYPE_FUNCTION:
16531656
{
1654-
if (!ecma_get_object_is_builtin (obj_p))
1655-
{
1656-
const ecma_compiled_code_t *bytecode_data_p = ecma_op_function_get_compiled_code (ext_obj_p);
1657+
const ecma_compiled_code_t *bytecode_data_p = ecma_op_function_get_compiled_code (ext_obj_p);
16571658

1658-
switch (CBC_FUNCTION_GET_TYPE (bytecode_data_p->status_flags))
1659-
{
1659+
switch (CBC_FUNCTION_GET_TYPE (bytecode_data_p->status_flags))
1660+
{
16601661
#if JERRY_ESNEXT
1661-
case CBC_FUNCTION_ARROW:
1662-
case CBC_FUNCTION_ASYNC_ARROW:
1663-
{
1664-
return JERRY_FUNCTION_TYPE_ARROW;
1665-
}
1666-
case CBC_FUNCTION_GENERATOR:
1667-
case CBC_FUNCTION_ASYNC_GENERATOR:
1668-
{
1669-
return JERRY_FUNCTION_TYPE_GENERATOR;
1670-
}
1662+
case CBC_FUNCTION_ARROW:
1663+
case CBC_FUNCTION_ASYNC_ARROW:
1664+
{
1665+
return JERRY_FUNCTION_TYPE_ARROW;
1666+
}
1667+
case CBC_FUNCTION_GENERATOR:
1668+
case CBC_FUNCTION_ASYNC_GENERATOR:
1669+
{
1670+
return JERRY_FUNCTION_TYPE_GENERATOR;
1671+
}
16711672
#endif /* JERRY_ESNEXT */
1672-
case CBC_FUNCTION_ACCESSOR:
1673-
{
1674-
return JERRY_FUNCTION_TYPE_ACCESSOR;
1675-
}
1676-
default:
1677-
{
1678-
break;
1679-
}
1673+
case CBC_FUNCTION_ACCESSOR:
1674+
{
1675+
return JERRY_FUNCTION_TYPE_ACCESSOR;
1676+
}
1677+
default:
1678+
{
1679+
break;
16801680
}
16811681
}
16821682
return JERRY_FUNCTION_TYPE_GENERIC;
@@ -2872,7 +2872,7 @@ jerry_get_array_length (const jerry_value_t value) /**< api value */
28722872

28732873
ecma_object_t *object_p = ecma_get_object_from_value (value);
28742874

2875-
if (JERRY_LIKELY (ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_ARRAY))
2875+
if (JERRY_LIKELY (ecma_get_object_base_type (object_p) == ECMA_OBJECT_BASE_TYPE_ARRAY))
28762876
{
28772877
return ecma_array_get_length (object_p);
28782878
}
@@ -5519,8 +5519,7 @@ jerry_set_realm (jerry_value_t realm_value) /**< jerry api value */
55195519
{
55205520
ecma_object_t *object_p = ecma_get_object_from_value (realm_value);
55215521

5522-
if (ecma_get_object_is_builtin (object_p)
5523-
&& ecma_builtin_is_global (object_p))
5522+
if (ecma_builtin_is_global (object_p))
55245523
{
55255524
ecma_global_object_t *previous_global_object_p = JERRY_CONTEXT (global_object_p);
55265525
JERRY_CONTEXT (global_object_p) = (ecma_global_object_t *) object_p;
@@ -5551,8 +5550,7 @@ jerry_realm_get_this (jerry_value_t realm_value) /**< realm value */
55515550
{
55525551
ecma_object_t *object_p = ecma_get_object_from_value (realm_value);
55535552

5554-
if (ecma_get_object_is_builtin (object_p)
5555-
&& ecma_builtin_is_global (object_p))
5553+
if (ecma_builtin_is_global (object_p))
55565554
{
55575555
ecma_global_object_t *global_object_p = (ecma_global_object_t *) object_p;
55585556

@@ -5599,8 +5597,7 @@ jerry_realm_set_this (jerry_value_t realm_value, /**< realm value */
55995597
{
56005598
ecma_object_t *object_p = ecma_get_object_from_value (realm_value);
56015599

5602-
if (ecma_get_object_is_builtin (object_p)
5603-
&& ecma_builtin_is_global (object_p))
5600+
if (ecma_builtin_is_global (object_p))
56045601
{
56055602
ecma_global_object_t *global_object_p = (ecma_global_object_t *) object_p;
56065603
global_object_p->this_binding = this_value;

jerry-core/debugger/debugger.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -1425,8 +1425,7 @@ jerry_debugger_exception_object_to_string (ecma_value_t exception_obj_value) /**
14251425

14261426
ecma_object_t *prototype_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, prototype_cp);
14271427

1428-
if (ecma_get_object_type (prototype_p) != ECMA_OBJECT_TYPE_GENERAL
1429-
|| !ecma_get_object_is_builtin (prototype_p))
1428+
if (ecma_get_object_type (prototype_p) != ECMA_OBJECT_TYPE_BUILT_IN_GENERAL)
14301429
{
14311430
return NULL;
14321431
}

0 commit comments

Comments
 (0)