LibJS: Fix conditional expression precedence

This fixes the following from parsing incorrectly due to the comma
that occurs after the conditional:

  let o = {
    foo: true ? 1 : 2,
    bar: 'baz',
  };
This commit is contained in:
Matthew Olsson 2020-05-28 14:42:20 -07:00 committed by Andreas Kling
parent 3847d00727
commit 664085b719
Notes: sideshowbarker 2024-07-19 06:00:18 +09:00
3 changed files with 6 additions and 2 deletions

View file

@ -1105,9 +1105,9 @@ NonnullRefPtr<ContinueStatement> Parser::parse_continue_statement()
NonnullRefPtr<ConditionalExpression> Parser::parse_conditional_expression(NonnullRefPtr<Expression> test)
{
consume(TokenType::QuestionMark);
auto consequent = parse_expression(0);
auto consequent = parse_expression(2);
consume(TokenType::Colon);
auto alternate = parse_expression(0);
auto alternate = parse_expression(2);
return create_ast_node<ConditionalExpression>(move(test), move(consequent), move(alternate));
}