From: Valentin Bartenev Date: Thu, 2 May 2019 18:21:16 +0000 (+0300) Subject: Rejection of multiple "var" declarations in the for-in statement. X-Git-Tag: 0.3.2~32 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=62f0d443e6d073a6be135a0d17597ade3360864f;p=njs.git Rejection of multiple "var" declarations in the for-in statement. --- diff --git a/njs/njs_parser.c b/njs/njs_parser.c index c32f0e65..4e1ac418 100644 --- a/njs/njs_parser.c +++ b/njs/njs_parser.c @@ -1078,8 +1078,12 @@ njs_parser_var_statement(njs_vm_t *vm, njs_parser_t *parser, njs_token_t parent, return token; } - if (var_in && token == NJS_TOKEN_IN) { - return njs_parser_var_in_statement(vm, parser, name); + if (var_in) { + if (token == NJS_TOKEN_IN) { + return njs_parser_var_in_statement(vm, parser, name); + } + + var_in = 0; } expr = NULL; diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 0bd45f01..15578bfe 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -2265,6 +2265,9 @@ static njs_unit_test_t njs_test[] = { nxt_string("for (null in undefined);"), nxt_string("ReferenceError: Invalid left-hand side \"null\" in for-in statement in 1") }, + { nxt_string("for (var a, b in []);"), + nxt_string("SyntaxError: Unexpected token \"in\" in 1") }, + { nxt_string("var s = ''; for (var p in [1,2]) {s += p}; s"), nxt_string("01") },