mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-26 22:38:51 +00:00
LibJS: Parse computed MemberExpressions
MemberExpression comes in two flavors: computed: a[b] non-computed: a.b We can now parse both of the types. :^)
This commit is contained in:
parent
86642add2f
commit
a3d2e07446
Notes:
sideshowbarker
2024-07-19 08:12:42 +09:00
Author: https://github.com/awesomekling
Commit: a3d2e07446
3 changed files with 26 additions and 12 deletions
|
@ -369,6 +369,12 @@ NonnullRefPtr<Expression> Parser::parse_secondary_expression(NonnullRefPtr<Expre
|
|||
case TokenType::Period:
|
||||
consume();
|
||||
return create_ast_node<MemberExpression>(move(lhs), parse_expression(min_precedence, associativity));
|
||||
case TokenType::BracketOpen: {
|
||||
consume(TokenType::BracketOpen);
|
||||
auto expression = create_ast_node<MemberExpression>(move(lhs), parse_expression(min_precedence, associativity), true);
|
||||
consume(TokenType::BracketClose);
|
||||
return expression;
|
||||
}
|
||||
case TokenType::PlusPlus:
|
||||
consume();
|
||||
return create_ast_node<UpdateExpression>(UpdateOp::Increment, move(lhs));
|
||||
|
@ -587,6 +593,7 @@ bool Parser::match_secondary_expression() const
|
|||
|| type == TokenType::LessThanEquals
|
||||
|| type == TokenType::ParenOpen
|
||||
|| type == TokenType::Period
|
||||
|| type == TokenType::BracketOpen
|
||||
|| type == TokenType::PlusPlus
|
||||
|| type == TokenType::MinusMinus;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue