From 41db53c183426b54a8b63285ebbdbc8cc2ccc21c Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Fri, 14 Oct 2016 18:12:36 +0300 Subject: [PATCH] A fix of var declaration. --- njs/njs_parser.c | 1 + njs/test/njs_unit_test.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/njs/njs_parser.c b/njs/njs_parser.c index 5a7afa83..d64a1f63 100644 --- a/njs/njs_parser.c +++ b/njs/njs_parser.c @@ -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 { diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 22f647f8..fba0788f 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -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") }, -- 2.47.3