diff --git a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp index 7e68e4265a..f7a59926c5 100644 --- a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp +++ b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp @@ -873,11 +873,13 @@ void CallExpression::generate_bytecode(Bytecode::Generator& generator) const } else { member_expression.object().generate_bytecode(generator); generator.emit(this_reg); - // FIXME: Don't copy this logic here, make MemberExpression generate it. - if (!is(member_expression.property())) - TODO(); - auto identifier_table_ref = generator.intern_identifier(static_cast(member_expression.property()).string()); - generator.emit(identifier_table_ref); + if (member_expression.is_computed()) { + member_expression.property().generate_bytecode(generator); + generator.emit(this_reg); + } else { + auto identifier_table_ref = generator.intern_identifier(verify_cast(member_expression.property()).string()); + generator.emit(identifier_table_ref); + } generator.emit(callee_reg); } } else {