diff --git a/lib/output.js b/lib/output.js index 7e846f7d..e4795148 100644 --- a/lib/output.js +++ b/lib/output.js @@ -1277,11 +1277,37 @@ function OutputStream(options) { output.print("default"); output.space(); } - if (self.exported_value) { + if (self.exported_names) { + output.space(); + + if (self.exported_names.length === 1 && self.exported_names[0].name.name === "*") { + self.exported_names[0].print(output); + } else { + output.print("{"); + self.exported_names.forEach(function (name_import, i) { + output.space(); + name_import.print(output); + if (i < self.exported_names.length - 1) { + output.print(","); + output.space(); + } + }); + output.space(); + output.print("}"); + } + output.space(); + } + else if (self.exported_value) { self.exported_value.print(output); } else if (self.exported_definition) { self.exported_definition.print(output); } + if (self.module_name) { + output.space(); + output.print("from"); + output.space(); + self.module_name.print(output); + } output.semicolon(); }); diff --git a/test/compress/harmony.js b/test/compress/harmony.js index 8b8b8d10..bd84221b 100644 --- a/test/compress/harmony.js +++ b/test/compress/harmony.js @@ -199,6 +199,15 @@ export_statement: { expect_exact: "export default 1;export var foo=4;export let foo=6;export const foo=6;export function foo(){};export class foo{};" } +export_module_statement: { + input: { + 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";' +} + import_statement_mangling: { mangle = { toplevel: true }; input: {