mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 10:38:13 +00:00
LibJS: Fix parsing of IfStatement, fixes #1829
This commit is contained in:
parent
3072f9fd82
commit
cebb619f8e
2 changed files with 23 additions and 1 deletions
|
@ -664,8 +664,11 @@ NonnullRefPtr<ReturnStatement> Parser::parse_return_statement()
|
|||
return create_ast_node<ReturnStatement>(nullptr);
|
||||
|
||||
if (match_expression()) {
|
||||
return create_ast_node<ReturnStatement>(parse_expression(0));
|
||||
auto expression = parse_expression(0);
|
||||
consume_or_insert_semicolon();
|
||||
return create_ast_node<ReturnStatement>(move(expression));
|
||||
}
|
||||
|
||||
consume_or_insert_semicolon();
|
||||
return create_ast_node<ReturnStatement>(nullptr);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,25 @@ load("test-common.js");
|
|||
* If this file produces syntax errors, something is wrong.
|
||||
*/
|
||||
|
||||
function bar() {
|
||||
// https://github.com/SerenityOS/serenity/issues/1829
|
||||
if (1)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
||||
if (1)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
if (1)
|
||||
return 1
|
||||
else
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
function foo() {
|
||||
for (var i = 0; i < 4; i++) {
|
||||
break // semicolon inserted here
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue