diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c index 3ea8f5da4..a34e745e5 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c @@ -744,7 +744,7 @@ ecma_builtin_regexp_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { if (!ecma_object_class_is (obj_p, LIT_MAGIC_STRING_REGEXP_UL)) { - if (ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_REGEXP_PROTOTYPE)) + if (obj_p == ecma_builtin_get (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE)) { return ecma_make_magic_string_value (LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP); } @@ -764,7 +764,7 @@ ecma_builtin_regexp_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { if (!ecma_object_class_is (obj_p, LIT_MAGIC_STRING_REGEXP_UL)) { - if (ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_REGEXP_PROTOTYPE)) + if (obj_p == ecma_builtin_get (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE)) { return ECMA_VALUE_UNDEFINED; } diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.c b/jerry-core/ecma/builtin-objects/ecma-builtins.c index 8f50d44cd..b5e8a5321 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.c @@ -264,38 +264,6 @@ ecma_builtin_get_property_count (ecma_builtin_id_t builtin_id) /**< built-in ID return (size_t) (curr_property_p - property_list_p); } /* ecma_builtin_get_property_count */ -/** - * Check if passed object is the instance of specified built-in. - * - * @return true - if the object is instance of the specified built-in - * false - otherwise - */ -bool -ecma_builtin_is (ecma_object_t *object_p, /**< pointer to an object */ - ecma_builtin_id_t builtin_id) /**< id of built-in to check on */ -{ - JERRY_ASSERT (object_p != NULL && !ecma_is_lexical_environment (object_p)); - JERRY_ASSERT (builtin_id < ECMA_BUILTIN_ID__COUNT); - - if (!ecma_get_object_is_builtin (object_p)) - { - return false; - } - - if (ECMA_BUILTIN_IS_EXTENDED_BUILT_IN (ecma_get_object_type (object_p))) - { - ecma_extended_built_in_object_t *extended_built_in_object_p = (ecma_extended_built_in_object_t *) object_p; - - return (extended_built_in_object_p->built_in.id == builtin_id - && extended_built_in_object_p->built_in.routine_id == 0); - } - - ecma_extended_object_t *built_in_object_p = (ecma_extended_object_t *) object_p; - - return (built_in_object_p->u.built_in.id == builtin_id - && built_in_object_p->u.built_in.routine_id == 0); -} /* ecma_builtin_is */ - /** * Check if passed object is a global built-in. * diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.h b/jerry-core/ecma/builtin-objects/ecma-builtins.h index 412ae3569..e8a2260c6 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.h @@ -140,8 +140,6 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, ecma_collection_t *prop_names_p, ecma_property_counter_t *prop_counter_p); bool -ecma_builtin_is (ecma_object_t *object_p, ecma_builtin_id_t builtin_id); -bool ecma_builtin_is_global (ecma_object_t *object_p); ecma_object_t * ecma_builtin_get (ecma_builtin_id_t builtin_id); diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index 1de91d877..c584bfaf1 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -2605,6 +2605,42 @@ ecma_op_object_enumerate (ecma_object_t *obj_p) /**< object */ return return_names_p; } /* ecma_op_object_enumerate */ +#ifndef JERRY_NDEBUG + +/** + * Check if passed object is the instance of specified built-in. + * + * @return true - if the object is instance of the specified built-in + * false - otherwise + */ +static bool +ecma_builtin_is (ecma_object_t *object_p, /**< pointer to an object */ + ecma_builtin_id_t builtin_id) /**< id of built-in to check on */ +{ + JERRY_ASSERT (object_p != NULL && !ecma_is_lexical_environment (object_p)); + JERRY_ASSERT (builtin_id < ECMA_BUILTIN_ID__COUNT); + + if (!ecma_get_object_is_builtin (object_p)) + { + return false; + } + + if (ECMA_BUILTIN_IS_EXTENDED_BUILT_IN (ecma_get_object_type (object_p))) + { + ecma_extended_built_in_object_t *extended_built_in_object_p = (ecma_extended_built_in_object_t *) object_p; + + return (extended_built_in_object_p->built_in.id == builtin_id + && extended_built_in_object_p->built_in.routine_id == 0); + } + + ecma_extended_object_t *built_in_object_p = (ecma_extended_object_t *) object_p; + + return (built_in_object_p->u.built_in.id == builtin_id + && built_in_object_p->u.built_in.routine_id == 0); +} /* ecma_builtin_is */ + +#endif /* !JERRY_NDEBUG */ + /** * The function is used in the assert of ecma_object_get_class_name * diff --git a/jerry-core/ecma/operations/ecma-regexp-object.c b/jerry-core/ecma/operations/ecma-regexp-object.c index 9e5edf7bb..87431d196 100644 --- a/jerry-core/ecma/operations/ecma-regexp-object.c +++ b/jerry-core/ecma/operations/ecma-regexp-object.c @@ -15,7 +15,6 @@ #include "ecma-alloc.h" #include "ecma-array-object.h" -#include "ecma-builtins.h" #include "ecma-builtin-helpers.h" #include "ecma-exceptions.h" #include "ecma-gc.h" diff --git a/tests/test262-esnext-excludelist.xml b/tests/test262-esnext-excludelist.xml index 6958cf47f..f7f739fa9 100644 --- a/tests/test262-esnext-excludelist.xml +++ b/tests/test262-esnext-excludelist.xml @@ -8603,13 +8603,6 @@ - - - - - - -