From 92d10140515295a3e9de5ba4b016ad63f398d837 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 12 Mar 2020 19:35:23 +0100 Subject: [PATCH] LibJS: Parse CallExpression arguments --- Libraries/LibJS/Parser.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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;