mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-29 15:58:47 +00:00
LibJS: Parse labels in continue and break statements
This commit is contained in:
parent
10bf4ba3dc
commit
03615a7872
Notes:
sideshowbarker
2024-07-19 05:59:34 +09:00
Author: https://github.com/mattco98
Commit: 03615a7872
Pull-request: https://github.com/SerenityOS/serenity/pull/2434
Reviewed-by: https://github.com/sunverwerth
2 changed files with 32 additions and 6 deletions
|
@ -1112,17 +1112,29 @@ NonnullRefPtr<ThrowStatement> Parser::parse_throw_statement()
|
|||
NonnullRefPtr<BreakStatement> Parser::parse_break_statement()
|
||||
{
|
||||
consume(TokenType::Break);
|
||||
FlyString target_label;
|
||||
if (match(TokenType::Semicolon)) {
|
||||
consume();
|
||||
return create_ast_node<BreakStatement>(target_label);
|
||||
}
|
||||
if (match_identifier_name() && !m_parser_state.m_current_token.trivia().contains('\n'))
|
||||
target_label = consume().value();
|
||||
consume_or_insert_semicolon();
|
||||
// FIXME: Handle labels. When fixing this, take care to correctly implement semicolon insertion
|
||||
return create_ast_node<BreakStatement>();
|
||||
return create_ast_node<BreakStatement>(target_label);
|
||||
}
|
||||
|
||||
NonnullRefPtr<ContinueStatement> Parser::parse_continue_statement()
|
||||
{
|
||||
consume(TokenType::Continue);
|
||||
FlyString target_label;
|
||||
if (match(TokenType::Semicolon)) {
|
||||
consume();
|
||||
return create_ast_node<ContinueStatement>(target_label);
|
||||
}
|
||||
if (match_identifier_name() && !m_parser_state.m_current_token.trivia().contains('\n'))
|
||||
target_label = consume().value();
|
||||
consume_or_insert_semicolon();
|
||||
// FIXME: Handle labels. When fixing this, take care to correctly implement semicolon insertion
|
||||
return create_ast_node<ContinueStatement>();
|
||||
return create_ast_node<ContinueStatement>(target_label);
|
||||
}
|
||||
|
||||
NonnullRefPtr<ConditionalExpression> Parser::parse_conditional_expression(NonnullRefPtr<Expression> test)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue