From: Artem S. Povalyukhin Date: Thu, 24 Jun 2021 05:53:12 +0000 (+0300) Subject: Fixed parsing of export default declarations. X-Git-Tag: 0.6.1~1 X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=40245967ce1683064d4e6a3330f651e2011e76d0;p=njs.git Fixed parsing of export default declarations. With non-assignment expression. --- diff --git a/src/njs_parser.c b/src/njs_parser.c index fc8adc06..7a89f7e7 100644 --- a/src/njs_parser.c +++ b/src/njs_parser.c @@ -7468,7 +7468,7 @@ njs_parser_export(njs_parser_t *parser, njs_lexer_token_t *token, node->token_line = parser->line; parser->node = node; - njs_parser_next(parser, njs_parser_expression); + njs_parser_next(parser, njs_parser_assignment_expression); return njs_parser_after(parser, current, node, 1, njs_parser_export_after); } @@ -7478,6 +7478,10 @@ static njs_int_t njs_parser_export_after(njs_parser_t *parser, njs_lexer_token_t *token, njs_queue_link_t *current) { + if (njs_parser_expect_semicolon(parser, token) != NJS_OK) { + return njs_parser_failed(parser); + } + parser->target->right = parser->node; parser->node = parser->target; diff --git a/test/module/export_non_assignment.js b/test/module/export_non_assignment.js new file mode 100644 index 00000000..e501731c --- /dev/null +++ b/test/module/export_non_assignment.js @@ -0,0 +1 @@ +export default 10, 11; diff --git a/test/njs_expect_test.exp b/test/njs_expect_test.exp index e179f413..cca2b054 100644 --- a/test/njs_expect_test.exp +++ b/test/njs_expect_test.exp @@ -749,6 +749,8 @@ njs_test { "Identifier \"default\" has already been declared in export.js:5\r\n"} {"import m from 'export_non_default.js'\r\n" "Non-default export is not supported in export_non_default.js:3\r\n"} + {"import m from 'export_non_assignment.js'\r\n" + "Unexpected token \",\" in export_non_assignment.js:1\r\n"} {"import ref from 'ref_exception.js'\r\n" "ReferenceError: \"undeclared\" is not defined"} {"var ref\r\n"