LibJS: Fix do..while parsing by consuming parentheses explicitly (#1652)

Before this patch the parser accepted conditions without enclosing
parentheses (like: .."while number < 9").
This commit is contained in:
Maxim Brunnmeier
2020-04-05 16:57:01 +02:00
committed by GitHub
parent d077637fd6
commit 2c4a5849f6

View File

@@ -729,9 +729,16 @@ NonnullRefPtr<TryStatement> Parser::parse_try_statement()
NonnullRefPtr<DoWhileStatement> Parser::parse_do_while_statement()
{
consume(TokenType::Do);
auto body = parse_statement();
consume(TokenType::While);
consume(TokenType::ParenOpen);
auto test = parse_expression(0);
consume(TokenType::ParenClose);
return create_ast_node<DoWhileStatement>(move(test), move(body));
}