@@ -1164,7 +1164,7 @@ jerry_value_is_array (const jerry_value_t value) /**< jerry api value */
1164
1164
jerry_assert_api_available ();
1165
1165
1166
1166
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 );
1168
1168
} /* jerry_value_is_array */
1169
1169
1170
1170
/**
@@ -1267,8 +1267,7 @@ jerry_value_is_async_function (const jerry_value_t value) /**< api value */
1267
1267
{
1268
1268
ecma_object_t * obj_p = ecma_get_object_from_value (value );
1269
1269
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 )
1272
1271
{
1273
1272
const ecma_compiled_code_t * bytecode_data_p ;
1274
1273
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 */
1593
1592
1594
1593
switch (ecma_get_object_type (obj_p ))
1595
1594
{
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 :
1599
1597
{
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 ];
1601
1600
}
1602
1601
case ECMA_OBJECT_TYPE_ARRAY :
1602
+ case ECMA_OBJECT_TYPE_BUILT_IN_ARRAY :
1603
1603
{
1604
1604
return JERRY_OBJECT_TYPE_ARRAY ;
1605
1605
}
@@ -1609,10 +1609,12 @@ jerry_object_get_type (const jerry_value_t value) /**< input value to check */
1609
1609
return JERRY_OBJECT_TYPE_PROXY ;
1610
1610
}
1611
1611
#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 :
1613
1616
{
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 ;
1616
1618
}
1617
1619
default :
1618
1620
{
@@ -1646,37 +1648,35 @@ jerry_function_get_type (const jerry_value_t value) /**< input value to check */
1646
1648
return JERRY_FUNCTION_TYPE_BOUND ;
1647
1649
}
1648
1650
case ECMA_OBJECT_TYPE_NATIVE_FUNCTION :
1651
+ case ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION :
1649
1652
{
1650
1653
return JERRY_FUNCTION_TYPE_GENERIC ;
1651
1654
}
1652
1655
case ECMA_OBJECT_TYPE_FUNCTION :
1653
1656
{
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 );
1657
1658
1658
- switch (CBC_FUNCTION_GET_TYPE (bytecode_data_p -> status_flags ))
1659
- {
1659
+ switch (CBC_FUNCTION_GET_TYPE (bytecode_data_p -> status_flags ))
1660
+ {
1660
1661
#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
+ }
1671
1672
#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 ;
1680
1680
}
1681
1681
}
1682
1682
return JERRY_FUNCTION_TYPE_GENERIC ;
@@ -2872,7 +2872,7 @@ jerry_get_array_length (const jerry_value_t value) /**< api value */
2872
2872
2873
2873
ecma_object_t * object_p = ecma_get_object_from_value (value );
2874
2874
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 ))
2876
2876
{
2877
2877
return ecma_array_get_length (object_p );
2878
2878
}
@@ -5519,8 +5519,7 @@ jerry_set_realm (jerry_value_t realm_value) /**< jerry api value */
5519
5519
{
5520
5520
ecma_object_t * object_p = ecma_get_object_from_value (realm_value );
5521
5521
5522
- if (ecma_get_object_is_builtin (object_p )
5523
- && ecma_builtin_is_global (object_p ))
5522
+ if (ecma_builtin_is_global (object_p ))
5524
5523
{
5525
5524
ecma_global_object_t * previous_global_object_p = JERRY_CONTEXT (global_object_p );
5526
5525
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 */
5551
5550
{
5552
5551
ecma_object_t * object_p = ecma_get_object_from_value (realm_value );
5553
5552
5554
- if (ecma_get_object_is_builtin (object_p )
5555
- && ecma_builtin_is_global (object_p ))
5553
+ if (ecma_builtin_is_global (object_p ))
5556
5554
{
5557
5555
ecma_global_object_t * global_object_p = (ecma_global_object_t * ) object_p ;
5558
5556
@@ -5599,8 +5597,7 @@ jerry_realm_set_this (jerry_value_t realm_value, /**< realm value */
5599
5597
{
5600
5598
ecma_object_t * object_p = ecma_get_object_from_value (realm_value );
5601
5599
5602
- if (ecma_get_object_is_builtin (object_p )
5603
- && ecma_builtin_is_global (object_p ))
5600
+ if (ecma_builtin_is_global (object_p ))
5604
5601
{
5605
5602
ecma_global_object_t * global_object_p = (ecma_global_object_t * ) object_p ;
5606
5603
global_object_p -> this_binding = this_value ;
0 commit comments