diff --git a/Libraries/LibJS/Parser.cpp b/Libraries/LibJS/Parser.cpp index fc8fb39d74..165681330d 100644 --- a/Libraries/LibJS/Parser.cpp +++ b/Libraries/LibJS/Parser.cpp @@ -191,13 +191,24 @@ NonnullOwnPtr Parser::parse_secondary_expression(NonnullOwnPtr Parser::parse_call_expression(NonnullOwnPtr lhs) { - // FIXME: allow arguments consume(TokenType::ParenOpen); + + NonnullOwnPtrVector arguments; + + for (;;) { + if (match_expression()) { + arguments.append(parse_expression()); + if (!match(TokenType::Comma)) + break; + consume(); + } + } + consume(TokenType::ParenClose); // FIXME: Allow lhs expression instead of just a string if (lhs->is_identifier()) { - return make(static_cast(lhs.ptr())->string()); + return make(static_cast(lhs.ptr())->string(), move(arguments)); } m_has_errors = true;