]> git.kaiwu.me - njs.git/commitdiff
A fix of var declaration.
authorIgor Sysoev <igor@sysoev.ru>
Fri, 14 Oct 2016 15:12:36 +0000 (18:12 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Fri, 14 Oct 2016 15:12:36 +0000 (18:12 +0300)
njs/njs_parser.c
njs/test/njs_unit_test.c

index 5a7afa833e1e5e5109be135192ceff9afdfbd419..d64a1f63a2dcf228dfc0f058a01d0de18d77bc7e 100644 (file)
@@ -641,6 +641,7 @@ njs_parser_var_statement(njs_vm_t *vm, njs_parser_t *parser)
     njs_variable_t     *var;
     njs_parser_node_t  *left, *stmt, *name, *assign;
 
+    parser->node = NULL;
     left = NULL;
 
     do {
index 22f647f82c9edc44650a0cc5f7ad60bfc0701524..fba0788fa6005d325bd8e6f50b918e5e4c0d13bd 100644 (file)
@@ -68,6 +68,12 @@ static njs_unit_test_t  njs_test[] =
     { nxt_string("var a = 1; var b; a"),
       nxt_string("1") },
 
+    { nxt_string("a = 1;for(;a;a--)var a; a"),
+      nxt_string("0") },
+
+    { nxt_string("if(1)if(0){0?0:0}else\nvar a\nelse\nvar b"),
+      nxt_string("undefined") },
+
     { nxt_string("function f(){} function f(){}"),
       nxt_string("SyntaxError: Duplicate declaration \"f\" in 1") },