Skip to content

Commit d4fe48f

Browse files
authored
Script classes should be skipped during 'name' property lazy instantiation (#3809)
This patch fixes the TC262 language/expressions/class/name.js testcase. JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
1 parent 104001d commit d4fe48f

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

jerry-core/ecma/operations/ecma-function-object.c

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,19 +1474,22 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**<
14741474
ECMA_SET_SECOND_BIT_TO_POINTER_TAG (ext_func_p->u.function.scope_cp);
14751475
const ecma_compiled_code_t *bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p);
14761476

1477-
ecma_value_t value = *ecma_compiled_code_resolve_function_name (bytecode_data_p);
1478-
if (value != ECMA_VALUE_EMPTY)
1477+
if (!(bytecode_data_p->status_flags & CBC_CODE_FLAGS_CLASS_CONSTRUCTOR))
14791478
{
1480-
JERRY_ASSERT (ecma_is_value_string (value));
1481-
1482-
/* Initialize 'name' property */
1483-
ecma_property_t *value_prop_p;
1484-
ecma_property_value_t *value_p = ecma_create_named_data_property (object_p,
1485-
property_name_p,
1486-
ECMA_PROPERTY_FLAG_CONFIGURABLE,
1487-
&value_prop_p);
1488-
value_p->value = ecma_copy_value (value);
1489-
return value_prop_p;
1479+
ecma_value_t value = *ecma_compiled_code_resolve_function_name (bytecode_data_p);
1480+
if (value != ECMA_VALUE_EMPTY)
1481+
{
1482+
JERRY_ASSERT (ecma_is_value_string (value));
1483+
1484+
/* Initialize 'name' property */
1485+
ecma_property_t *value_prop_p;
1486+
ecma_property_value_t *value_p = ecma_create_named_data_property (object_p,
1487+
property_name_p,
1488+
ECMA_PROPERTY_FLAG_CONFIGURABLE,
1489+
&value_prop_p);
1490+
value_p->value = ecma_copy_value (value);
1491+
return value_prop_p;
1492+
}
14901493
}
14911494
}
14921495

0 commit comments

Comments
 (0)