mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 21:57:35 +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);
|
return create_ast_node<ReturnStatement>(nullptr);
|
||||||
|
|
||||||
if (match_expression()) {
|
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();
|
consume_or_insert_semicolon();
|
||||||
return create_ast_node<ReturnStatement>(nullptr);
|
return create_ast_node<ReturnStatement>(nullptr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,25 @@ load("test-common.js");
|
||||||
* If this file produces syntax errors, something is wrong.
|
* 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() {
|
function foo() {
|
||||||
for (var i = 0; i < 4; i++) {
|
for (var i = 0; i < 4; i++) {
|
||||||
break // semicolon inserted here
|
break // semicolon inserted here
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue