diff --git a/lib/output.js b/lib/output.js index c6d6355b..a3807bf7 100644 --- a/lib/output.js +++ b/lib/output.js @@ -773,6 +773,7 @@ function OutputStream(options) { || p instanceof AST_Expansion // [...(a, b)] || p instanceof AST_ForOf && this === p.object // for (e of (foo, bar)) {} || p instanceof AST_Yield // yield (foo, bar) + || p instanceof AST_Export // export default (foo, bar) ; }); @@ -844,7 +845,8 @@ function OutputStream(options) { PARENS(AST_Call, function(output){ var p = output.parent(), p1; - if (p instanceof AST_New && p.expression === this) + if (p instanceof AST_New && p.expression === this + || p instanceof AST_Export && p.is_default && this.expression instanceof AST_Function) return true; // workaround for Safari bug. @@ -1106,20 +1108,6 @@ function OutputStream(options) { self._do_print(output); }); - DEFPRINT(AST_Function, function(self, output) { - var parent = output.parent(); - var grandparent = output.parent(1); - var is_exported_iife = parent instanceof AST_Call && parent.expression == self && - grandparent instanceof AST_Export && grandparent.is_default; - if (is_exported_iife) { - output.with_parens(function() { - self._do_print(output); - }); - } else { - self._do_print(output); - } - }); - DEFPRINT(AST_PrefixedTemplateString, function(self, output) { self.prefix.print(output); self.template_string.print(output); diff --git a/test/compress/export.js b/test/compress/export.js index b4ad46c5..94cb0228 100644 --- a/test/compress/export.js +++ b/test/compress/export.js @@ -410,7 +410,7 @@ export_default_anonymous_function_not_call: { export default function(){}(foo); } // FIXME: should be `export default function(){};foo;` - expect_exact: "export default(function(){})(foo);" + expect_exact: "export default(function(){}(foo));" } export_default_anonymous_generator_not_call: { @@ -449,5 +449,5 @@ issue_2977: { input: { export default (function () {})(); } - expect_exact: "export default(function(){})();" + expect_exact: "export default(function(){}());" }