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
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: sideshowbarker 2024-07-19 07:52:56 +09:00

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));
}