From 9dbbcab49daf9bd7c04db1dbcc6b8a4742038a52 Mon Sep 17 00:00:00 2001 From: Szilagyi Adam Date: Mon, 13 Jul 2020 12:12:46 +0200 Subject: [PATCH] Remove ecma_op_object_get_own_data_prop and use ecma_op_object_get_by_magic_id instead (#3969) JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu --- jerry-core/ecma/operations/ecma-objects.c | 33 ------------------- jerry-core/ecma/operations/ecma-objects.h | 1 - .../ecma/operations/ecma-regexp-object.c | 8 ++--- 3 files changed, 3 insertions(+), 39 deletions(-) diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index dfffa67d9..09ba5fdbc 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -757,39 +757,6 @@ ecma_op_object_find (ecma_object_t *object_p, /**< the object */ return ECMA_VALUE_NOT_FOUND; } /* ecma_op_object_find */ -/** - * Get own property by name - * - * Note: property must be an existing data property - * - * @return ecma value - * Returned value must be freed with ecma_free_value - */ -inline ecma_value_t JERRY_ATTR_ALWAYS_INLINE -ecma_op_object_get_own_data_prop (ecma_object_t *object_p, /**< the object */ - ecma_string_t *property_name_p) /**< property name */ -{ - JERRY_ASSERT (ecma_is_lexical_environment (object_p) - || !ecma_op_object_is_fast_array (object_p)); - - ecma_value_t result = ecma_op_object_find_own (ecma_make_object_value (object_p), - object_p, - property_name_p); - -#ifndef JERRY_NDEBUG - /* Because ecma_op_object_find_own might create a property - * this check is executed after the function return. */ - ecma_property_t *property_p = ecma_find_named_property (object_p, - property_name_p); - - JERRY_ASSERT (property_p != NULL - && ECMA_PROPERTY_GET_TYPE (*property_p) == ECMA_PROPERTY_TYPE_NAMEDDATA - && !ecma_is_property_configurable (*property_p)); -#endif /* !JERRY_NDEBUG */ - - return result; -} /* ecma_op_object_get_own_data_prop */ - /** * [[Get]] operation of ecma object * diff --git a/jerry-core/ecma/operations/ecma-objects.h b/jerry-core/ecma/operations/ecma-objects.h index fa7b9c6ff..8c7bc4ca6 100644 --- a/jerry-core/ecma/operations/ecma-objects.h +++ b/jerry-core/ecma/operations/ecma-objects.h @@ -35,7 +35,6 @@ ecma_value_t ecma_op_object_find_own (ecma_value_t base_value, ecma_object_t *ob ecma_value_t ecma_op_object_find (ecma_object_t *object_p, ecma_string_t *property_name_p); ecma_value_t ecma_op_object_find_by_uint32_index (ecma_object_t *object_p, uint32_t index); ecma_value_t ecma_op_object_find_by_number_index (ecma_object_t *object_p, ecma_number_t index); -ecma_value_t ecma_op_object_get_own_data_prop (ecma_object_t *object_p, ecma_string_t *property_name_p); ecma_value_t ecma_op_object_get (ecma_object_t *object_p, ecma_string_t *property_name_p); ecma_value_t ecma_op_object_get_with_receiver (ecma_object_t *object_p, ecma_string_t *property_name_p, ecma_value_t receiver); diff --git a/jerry-core/ecma/operations/ecma-regexp-object.c b/jerry-core/ecma/operations/ecma-regexp-object.c index b279b608b..7e7f85ae7 100644 --- a/jerry-core/ecma/operations/ecma-regexp-object.c +++ b/jerry-core/ecma/operations/ecma-regexp-object.c @@ -1683,8 +1683,7 @@ ecma_regexp_exec_helper (ecma_object_t *regexp_object_p, /**< RegExp object */ uint32_t index = 0; if (bc_p->header.status_flags & (RE_FLAG_GLOBAL | RE_FLAG_STICKY)) { - ecma_string_t *lastindex_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_LASTINDEX_UL); - ecma_value_t lastindex_value = ecma_op_object_get_own_data_prop (regexp_object_p, lastindex_str_p); + ecma_value_t lastindex_value = ecma_op_object_get_by_magic_id (regexp_object_p, LIT_MAGIC_STRING_LASTINDEX_UL); ecma_number_t lastindex_num; ret_value = ecma_op_to_integer (lastindex_value, &lastindex_num); @@ -1710,7 +1709,7 @@ ecma_regexp_exec_helper (ecma_object_t *regexp_object_p, /**< RegExp object */ if (index > input_length) { ret_value = ecma_op_object_put (regexp_object_p, - lastindex_str_p, + ecma_get_magic_string (LIT_MAGIC_STRING_LASTINDEX_UL), ecma_make_integer_value (0), true); @@ -2804,8 +2803,7 @@ ecma_regexp_replace_helper (ecma_value_t this_arg, /**< this argument */ if (sticky && !global) { - ecma_string_t *lastindex_str_p = ecma_get_magic_string (LIT_MAGIC_STRING_LASTINDEX_UL); - ecma_value_t lastindex_value = ecma_op_object_get_own_data_prop (this_obj_p, lastindex_str_p); + ecma_value_t lastindex_value = ecma_op_object_get_by_magic_id (this_obj_p, LIT_MAGIC_STRING_LASTINDEX_UL); result = ecma_op_to_length (lastindex_value, &replace_ctx.index); ecma_free_value (lastindex_value);