1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:18:12 +00:00

LibJS: Implement void operator

This commit is contained in:
Linus Groh 2020-04-15 17:55:03 +01:00 committed by Andreas Kling
parent beda751d33
commit d30db07048
4 changed files with 34 additions and 1 deletions

View file

@ -185,6 +185,7 @@ Associativity Parser::operator_associativity(TokenType type) const
case TokenType::EqualsEqualsEquals:
case TokenType::ExclamationMarkEqualsEquals:
case TokenType::Typeof:
case TokenType::Void:
case TokenType::Ampersand:
case TokenType::Caret:
case TokenType::Pipe:
@ -416,6 +417,9 @@ NonnullRefPtr<Expression> Parser::parse_unary_prefixed_expression()
case TokenType::Typeof:
consume();
return create_ast_node<UnaryExpression>(UnaryOp::Typeof, parse_expression(precedence, associativity));
case TokenType::Void:
consume();
return create_ast_node<UnaryExpression>(UnaryOp::Void, parse_expression(precedence, associativity));
default:
m_parser_state.m_has_errors = true;
expected("primary expression (missing switch case)");
@ -968,7 +972,8 @@ bool Parser::match_unary_prefixed_expression() const
|| type == TokenType::Tilde
|| type == TokenType::Plus
|| type == TokenType::Minus
|| type == TokenType::Typeof;
|| type == TokenType::Typeof
|| type == TokenType::Void;
}
bool Parser::match_secondary_expression() const