diff --git a/lib/compress.js b/lib/compress.js index 5ab9a841..453b6ed6 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -7301,6 +7301,13 @@ Compressor.prototype.compress = function(node) { } }, function(node, in_list) { if (node instanceof AST_BlockStatement) return trim_block(node, tt.parent(), in_list); + if (node instanceof AST_ExportDeclaration) { + var block = node.body; + if (!(block instanceof AST_BlockStatement)) return; + node.body = block.body.pop(); + block.body.push(node); + return in_list ? List.splice(block.body) : block; + } if (node instanceof AST_For) return patch_for_init(node, in_list); if (node instanceof AST_ForIn) { if (!drop_vars || !compressor.option("loops")) return; diff --git a/test/compress/exports.js b/test/compress/exports.js index 005a93e6..2b5e6aab 100644 --- a/test/compress/exports.js +++ b/test/compress/exports.js @@ -496,3 +496,16 @@ issue_4766: { export var a = "bar"; } } + +issue_5444: { + options = { + unused: true, + } + input: { + export var a = (console, console); + } + expect: { + console; + export var a = console; + } +}