From: Igor Sysoev Date: Tue, 4 Apr 2017 07:47:12 +0000 (+0300) Subject: Function declaration should return "undefined". X-Git-Tag: 0.1.10~6 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=6d735e295dea65fee277997d0c6826398acec2e7;p=njs.git Function declaration should return "undefined". --- diff --git a/njs/njs_generator.c b/njs/njs_generator.c index ceeb12a4..ceb40ae6 100644 --- a/njs/njs_generator.c +++ b/njs/njs_generator.c @@ -1261,9 +1261,10 @@ njs_generate_stop_statement(njs_vm_t *vm, njs_parser_t *parser, stop->code.retval = NJS_VMCODE_NO_RETVAL; index = NJS_INDEX_NONE; + node = node->right; - if (node->right != NULL) { - index = node->right->index; + if (node != NULL && node->token != NJS_TOKEN_FUNCTION) { + index = node->index; } if (index == NJS_INDEX_NONE) { diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 5584a6a1..81f729c5 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -4199,6 +4199,12 @@ static njs_unit_test_t njs_test[] = { nxt_string("function () { } f()"), nxt_string("SyntaxError: Unexpected token \"(\" in 1") }, + { nxt_string("function f() { }"), + nxt_string("undefined") }, + + { nxt_string("var x; function f() { }"), + nxt_string("undefined") }, + { nxt_string("function f() { } f()"), nxt_string("undefined") },