]> git.kaiwu.me - njs.git/commitdiff
Fixed parsing of invalid for-var statement.
authorVadim Zhestikov <v.zhestikov@f5.com>
Thu, 1 Jun 2023 16:39:27 +0000 (09:39 -0700)
committerVadim Zhestikov <v.zhestikov@f5.com>
Thu, 1 Jun 2023 16:39:27 +0000 (09:39 -0700)
src/njs_parser.c
src/test/njs_unit_test.c

index 6c093c77bdff32b00c7fe763853ccadcff60c692..5a26a84a787a6d1d7eb02bc9c78ddd270d0fa542 100644 (file)
@@ -5908,12 +5908,10 @@ njs_parser_for_var_binding_or_var_list(njs_parser_t *parser,
             njs_lexer_consume_token(parser->lexer, 2);
 
             return NJS_DONE;
-        }
-
-        parser->node = NULL;
 
-        njs_parser_next(parser, njs_parser_expression);
-        return NJS_OK;
+        } else {
+            return njs_parser_failed(parser);
+        }
     }
 }
 
index 401fe558e04c94476d737d5f943a0ef10f1a2a01..d09275ceba70b2a26824a35cc2eb12c0aacc7e11 100644 (file)
@@ -2972,6 +2972,9 @@ static njs_unit_test_t  njs_test[] =
     { njs_str("for(c=let c"),
       njs_str("SyntaxError: Unexpected token \"let\" in 1") },
 
+    { njs_str("for(var``>0; 0 ;) ;"),
+      njs_str("SyntaxError: Unexpected token \"`\" in 1") },
+
     /* switch. */
 
     { njs_str("switch"),