From a8b25d6c36e2824eef954a056f2bf0688d616601 Mon Sep 17 00:00:00 2001 From: davidot Date: Sat, 14 Aug 2021 17:02:15 +0200 Subject: [PATCH] LibJS: Handle '++' and '--' more correctly within expression --- Userland/Libraries/LibJS/Parser.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibJS/Parser.cpp b/Userland/Libraries/LibJS/Parser.cpp index 779783106db874..303cf457a22ac2 100644 --- a/Userland/Libraries/LibJS/Parser.cpp +++ b/Userland/Libraries/LibJS/Parser.cpp @@ -1290,7 +1290,7 @@ NonnullRefPtr Parser::parse_expression(int min_precedence, Associati Associativity new_associativity = operator_associativity(m_state.current_token.type()); expression = parse_secondary_expression(move(expression), new_precedence, new_associativity); - while (match(TokenType::TemplateLiteralStart)) { + while (match(TokenType::TemplateLiteralStart) && !is(*expression)) { auto template_literal = parse_template_literal(true); expression = create_ast_node({ m_state.current_token.filename(), rule_start.position(), position() }, move(expression), move(template_literal)); } @@ -2694,8 +2694,8 @@ bool Parser::match_secondary_expression(const Vector& forbidden) cons || type == TokenType::ParenOpen || type == TokenType::Period || type == TokenType::BracketOpen - || type == TokenType::PlusPlus - || type == TokenType::MinusMinus + || (type == TokenType::PlusPlus && !m_state.current_token.trivia_contains_line_terminator()) + || (type == TokenType::MinusMinus && !m_state.current_token.trivia_contains_line_terminator()) || type == TokenType::In || type == TokenType::Instanceof || type == TokenType::QuestionMark