From a729c43e875ca14725c0411de59e32e0a2220839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C5=A0pan=C4=9Bl?= Date: Fri, 31 Mar 2017 11:51:27 +0200 Subject: [PATCH] Another variant of export added - export {Name}. (#1737) --- lib/parse.js | 45 ++++++++++++++++++++++++---------------- test/compress/harmony.js | 3 ++- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/lib/parse.js b/lib/parse.js index c2a07b84..477b17bf 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -2294,26 +2294,35 @@ function parse($TEXT, options) { } if (exported_names) { - expect_token("name", "from"); + if (is("name", "from")) { + next(); - var mod_str = S.token; - if (mod_str.type !== 'string') { - unexpected(); + var mod_str = S.token; + if (mod_str.type !== 'string') { + unexpected(); + } + next(); + + return new AST_Export({ + start: start, + is_default: is_default, + exported_names: exported_names, + module_name: new AST_String({ + start: mod_str, + value: mod_str.value, + quote: mod_str.quote, + end: mod_str, + }), + end: prev(), + }); + } else { + return new AST_Export({ + start: start, + is_default: is_default, + exported_names: exported_names, + end: prev(), + }); } - next(); - - return new AST_Export({ - start: start, - is_default: is_default, - exported_names: exported_names, - module_name: new AST_String({ - start: mod_str, - value: mod_str.value, - quote: mod_str.quote, - end: mod_str, - }), - end: prev(), - }); } var is_definition = diff --git a/test/compress/harmony.js b/test/compress/harmony.js index bd84221b..fa29b18e 100644 --- a/test/compress/harmony.js +++ b/test/compress/harmony.js @@ -204,8 +204,9 @@ export_module_statement: { export * from "a.js"; export {A} from "a.js"; export {A, B} from "a.js"; + export {C}; } - expect_exact: 'export*from"a.js";export{A}from"a.js";export{A,B}from"a.js";' + expect_exact: 'export*from"a.js";export{A}from"a.js";export{A,B}from"a.js";export{C};' } import_statement_mangling: {