diff --git a/jerry-core/ecma/base/ecma-gc.c b/jerry-core/ecma/base/ecma-gc.c index e4f7d3bcea..edffa3cd71 100644 --- a/jerry-core/ecma/base/ecma-gc.c +++ b/jerry-core/ecma/base/ecma-gc.c @@ -545,7 +545,8 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ { ecma_gc_free_native_pointer (property_p); } - else if (prop_iter_p->types[i] != ECMA_PROPERTY_TYPE_DELETED) + + if (prop_iter_p->types[i] != ECMA_PROPERTY_TYPE_DELETED) { ecma_free_property (object_p, name_cp, property_p); } diff --git a/jerry-core/ecma/base/ecma-helpers.c b/jerry-core/ecma/base/ecma-helpers.c index ab925add46..bae15d4cae 100644 --- a/jerry-core/ecma/base/ecma-helpers.c +++ b/jerry-core/ecma/base/ecma-helpers.c @@ -764,8 +764,10 @@ ecma_free_property (ecma_object_t *object_p, /**< object the property belongs to { JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (*property_p) == ECMA_PROPERTY_TYPE_INTERNAL); - /* Currently no internal property can reach this point. */ - JERRY_UNREACHABLE (); + /* Must be a native pointer. */ + JERRY_ASSERT (ECMA_PROPERTY_GET_NAME_TYPE (*property_p) == ECMA_DIRECT_STRING_MAGIC + && (name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER)); + break; } } diff --git a/jerry-core/ecma/base/ecma-lcache.c b/jerry-core/ecma/base/ecma-lcache.c index 6e2b6566c3..b4465d1f88 100644 --- a/jerry-core/ecma/base/ecma-lcache.c +++ b/jerry-core/ecma/base/ecma-lcache.c @@ -196,7 +196,8 @@ ecma_lcache_invalidate (ecma_object_t *object_p, /**< object */ JERRY_ASSERT (object_p != NULL); JERRY_ASSERT (prop_p != NULL && ecma_is_property_lcached (prop_p)); JERRY_ASSERT (ECMA_PROPERTY_GET_TYPE (*prop_p) == ECMA_PROPERTY_TYPE_NAMEDDATA - || ECMA_PROPERTY_GET_TYPE (*prop_p) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR); + || ECMA_PROPERTY_GET_TYPE (*prop_p) == ECMA_PROPERTY_TYPE_NAMEDACCESSOR + || ECMA_PROPERTY_GET_TYPE (*prop_p) == ECMA_PROPERTY_TYPE_INTERNAL); jmem_cpointer_t object_cp; ECMA_SET_NON_NULL_POINTER (object_cp, object_p);