diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index 2dc872fa3..f4d1ae1db 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -2415,10 +2415,12 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p) /**< object */ { ecma_property_pair_t *prop_pair_p = (ecma_property_pair_t *) prop_iter_p; - /* Internal properties are special properties so they must not be present. */ - JERRY_ASSERT (ECMA_PROPERTY_GET_NAME_TYPE (*property_p) != ECMA_DIRECT_STRING_MAGIC - || prop_pair_p->names_cp[i] < LIT_NON_INTERNAL_MAGIC_STRING__COUNT - || prop_pair_p->names_cp[i] >= LIT_MAGIC_STRING__COUNT); + if (ECMA_PROPERTY_GET_NAME_TYPE (*property_p) == ECMA_DIRECT_STRING_MAGIC + && prop_pair_p->names_cp[i] >= LIT_NON_INTERNAL_MAGIC_STRING__COUNT + && prop_pair_p->names_cp[i] < LIT_MAGIC_STRING__COUNT) + { + continue; + } ecma_string_t *name_p = ecma_string_from_property_name (*property_p, prop_pair_p->names_cp[i]);