1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:37:35 +00:00

LibJS: Add support for the '#privateName in obj' expression

This commit is contained in:
davidot 2021-10-14 02:05:24 +02:00 committed by Linus Groh
parent 16cc82460f
commit 7e8724db71
2 changed files with 23 additions and 0 deletions

View file

@ -1214,6 +1214,11 @@ Parser::PrimaryExpressionParseResult Parser::parse_primary_expression()
if (!m_state.in_generator_function_context)
goto read_as_identifier;
return { parse_yield_expression(), false };
case TokenType::PrivateIdentifier:
VERIFY(next_token().type() == TokenType::In);
if (!is_private_identifier_valid())
syntax_error(String::formatted("Reference to undeclared private field or method '{}'", m_state.current_token.value()));
return { create_ast_node<PrivateIdentifier>({ m_state.current_token.filename(), rule_start.position(), position() }, consume().value()) };
default:
if (match_identifier_name())
goto read_as_identifier;