]> git.kaiwu.me - njs.git/commitdiff
Fixed for(expr1; conditional syntax error handling.
authorVadim Zhestikov <v.zhestikov@f5.com>
Fri, 18 Nov 2022 22:10:25 +0000 (14:10 -0800)
committerVadim Zhestikov <v.zhestikov@f5.com>
Fri, 18 Nov 2022 22:10:25 +0000 (14:10 -0800)
src/njs_parser.c
src/test/njs_unit_test.c

index 9d902863c35008a61af578651fbe97c61e6b1da9..fa18e9e364f38d09a09283c99dc124ae82d4ac86 100644 (file)
@@ -5652,6 +5652,10 @@ static njs_int_t
 njs_parser_expression_continue_assign_comma(njs_parser_t *parser,
     njs_lexer_token_t *token, njs_queue_link_t *current)
 {
+    if (parser->ret != NJS_OK) {
+        return njs_parser_failed(parser);
+    }
+
     njs_parser_next(parser, njs_parser_assignment_expression_after);
 
     return njs_parser_after(parser, current, NULL, 1,
index 364fcaa6bbde662f2f93af05356ac38dbf24f293..8fa86a5ced9a3a7e7c4cf249be44b1316bfae3e9 100644 (file)
@@ -2968,6 +2968,9 @@ static njs_unit_test_t  njs_test[] =
     { njs_str("for(9A=>>"),
       njs_str("SyntaxError: Unexpected token \"A\" in 1") },
 
+    { njs_str("for(A?{,"),
+      njs_str("SyntaxError: Unexpected token \",\" in 1") },
+
     /* switch. */
 
     { njs_str("switch"),