From: Igor Sysoev Date: Fri, 11 Dec 2015 15:41:40 +0000 (+0300) Subject: "var" statement fixed. X-Git-Tag: 0.1.0~101 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=8847a0f6bacfc90fa98ecbf94df9122f8e852d29;p=njs.git "var" statement fixed. --- diff --git a/njs/njs_parser.c b/njs/njs_parser.c index a33b45ea..ce3a2fe9 100644 --- a/njs/njs_parser.c +++ b/njs/njs_parser.c @@ -604,7 +604,8 @@ njs_parser_var_statement(njs_vm_t *vm, njs_parser_t *parser) } if (token != NJS_TOKEN_NAME) { - return token; + /* TODO: message. */ + return NJS_TOKEN_ILLEGAL; } nxt_thread_log_debug("JS: %V", &parser->lexer->text); diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index fdabefa5..e880ab62 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -1310,6 +1310,19 @@ static njs_unit_test_t njs_test[] = { nxt_string("a = 3; if (true) if (false); else a = 2; a"), nxt_string("2") }, + /* var statements. */ + + { nxt_string("var; a"), + nxt_string("SyntaxError") }, + + { nxt_string("var \n a \n = 1; a"), + nxt_string("1") }, + + { nxt_string("var \n a, \n b; b"), + nxt_string("undefined") }, + + /**/ + { nxt_string("for (i = 0; i < 10; i++) { i += 1 } i"), nxt_string("10") }, @@ -3039,6 +3052,12 @@ static njs_unit_test_t njs_test[] = { nxt_string("RegExp.constructor === Function"), nxt_string("true") }, + { nxt_string("var a = 0, function(a) { return a + 1 }(2); a"), + nxt_string("SyntaxError") }, + + { nxt_string("var a = (0, function(a) { return a + 1 }(2)); a"), + nxt_string("3") }, + #if 0 { nxt_string("Object.prototype.toString.call()"), nxt_string("[object Undefined]") }, @@ -3139,12 +3158,10 @@ static njs_unit_test_t njs_test[] = { nxt_string("var x = null;"), nxt_string("") }, -#if 0 /* es5id: 8.2_A2 */ { nxt_string("var null;"), nxt_string("SyntaxError") }, -#endif /* es5id: 8.2_A3 */