mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-31 05:09:12 +00:00
LibJS: Implement +=, -=, *=, and /= assignment operators
This commit is contained in:
parent
0fe87c5fec
commit
2b36b4f09f
Notes:
sideshowbarker
2024-07-19 08:45:04 +09:00
Author: https://github.com/deoxxa
Commit: 2b36b4f09f
Pull-request: https://github.com/SerenityOS/serenity/pull/1425
Reviewed-by: https://github.com/sunverwerth
3 changed files with 48 additions and 0 deletions
|
@ -124,15 +124,27 @@ NonnullOwnPtr<Expression> Parser::parse_secondary_expression(NonnullOwnPtr<Expre
|
|||
case TokenType::Plus:
|
||||
consume();
|
||||
return make<BinaryExpression>(BinaryOp::Plus, move(lhs), parse_expression());
|
||||
case TokenType::PlusEquals:
|
||||
consume();
|
||||
return make<AssignmentExpression>(AssignmentOp::PlusEquals, move(lhs), parse_expression());
|
||||
case TokenType::Minus:
|
||||
consume();
|
||||
return make<BinaryExpression>(BinaryOp::Minus, move(lhs), parse_expression());
|
||||
case TokenType::MinusEquals:
|
||||
consume();
|
||||
return make<AssignmentExpression>(AssignmentOp::MinusEquals, move(lhs), parse_expression());
|
||||
case TokenType::Asterisk:
|
||||
consume();
|
||||
return make<BinaryExpression>(BinaryOp::Asterisk, move(lhs), parse_expression());
|
||||
case TokenType::AsteriskEquals:
|
||||
consume();
|
||||
return make<AssignmentExpression>(AssignmentOp::AsteriskEquals, move(lhs), parse_expression());
|
||||
case TokenType::Slash:
|
||||
consume();
|
||||
return make<BinaryExpression>(BinaryOp::Slash, move(lhs), parse_expression());
|
||||
case TokenType::SlashEquals:
|
||||
consume();
|
||||
return make<AssignmentExpression>(AssignmentOp::SlashEquals, move(lhs), parse_expression());
|
||||
case TokenType::GreaterThanEquals:
|
||||
consume();
|
||||
return make<BinaryExpression>(BinaryOp::GreaterThanEquals, move(lhs), parse_expression());
|
||||
|
@ -250,9 +262,13 @@ bool Parser::match_secondary_expression() const
|
|||
{
|
||||
auto type = m_current_token.type();
|
||||
return type == TokenType::Plus
|
||||
|| type == TokenType::PlusEquals
|
||||
|| type == TokenType::Minus
|
||||
|| type == TokenType::MinusEquals
|
||||
|| type == TokenType::Asterisk
|
||||
|| type == TokenType::AsteriskEquals
|
||||
|| type == TokenType::Slash
|
||||
|| type == TokenType::SlashEquals
|
||||
|| type == TokenType::Equals
|
||||
|| type == TokenType::GreaterThanEquals
|
||||
|| type == TokenType::LessThanEquals
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue