diff --git a/Userland/Libraries/LibJS/AST.cpp b/Userland/Libraries/LibJS/AST.cpp index a234a0066f..9217f7cce5 100644 --- a/Userland/Libraries/LibJS/AST.cpp +++ b/Userland/Libraries/LibJS/AST.cpp @@ -3289,6 +3289,8 @@ DeprecatedString MemberExpression::to_string_approximation() const object_string = static_cast(*m_object).string(); if (is_computed()) return DeprecatedString::formatted("{}[]", object_string); + if (is(*m_property)) + return DeprecatedString::formatted("{}.{}", object_string, verify_cast(*m_property).string()); return DeprecatedString::formatted("{}.{}", object_string, verify_cast(*m_property).string()); } diff --git a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp index 9898cac2cc..84981ae6e8 100644 --- a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp +++ b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp @@ -1357,7 +1357,12 @@ Bytecode::CodeGenerationErrorOr CallExpression::generate_bytecode(Bytecode TRY(member_expression.property().generate_bytecode(generator)); generator.emit(this_reg); } else { - auto identifier_table_ref = generator.intern_identifier(verify_cast(member_expression.property()).string()); + auto identifier_table_ref = [&] { + if (is(member_expression.property())) + return generator.intern_identifier(verify_cast(member_expression.property()).string()); + return generator.intern_identifier(verify_cast(member_expression.property()).string()); + }(); + generator.emit(identifier_table_ref); } }