diff --git a/test/mocha/reduce.js b/test/mocha/reduce.js index dcc0993f..366db94d 100644 --- a/test/mocha/reduce.js +++ b/test/mocha/reduce.js @@ -466,4 +466,23 @@ describe("test/reduce.js", function() { "// }", ].join("\n")); }); + it("Should transform `export default (42)` correctly", function() { + var code = [ + "export default (42);", + "for (var k in this)", + " console.log(k);", + ].join("\n"); + var result = reduce_test(code, { + compress: false, + mangle: false, + }); + if (result.error) throw result.error; + assert.strictEqual(result.code, [ + "// Can't reproduce test failure", + "// minify options: {", + '// "compress": false,', + '// "mangle": false', + "// }", + ].join("\n")); + }); }); diff --git a/test/sandbox.js b/test/sandbox.js index c1932269..f85fa24e 100644 --- a/test/sandbox.js +++ b/test/sandbox.js @@ -54,8 +54,8 @@ exports.same_stdout = semver.satisfies(process.version, "0.12") ? function(expec exports.patch_module_statements = function(code) { var count = 0, has_default = "", imports = []; code = code.replace(/\bexport(?:\s*\{[^{}]*}\s*?(?:$|\n|;)|\s+default\b(?:\s*(\(|\{|class\s*\{|class\s+(?=extends\b)|(?:async\s+)?function\s*(?:\*\s*)?\())?|\b)/g, function(match, header) { + if (/^export\s+default/.test(match)) has_default = "var _uglify_export_default_;"; if (!header) return ""; - has_default = "var _uglify_export_default_;"; if (header.length == 1) return "0, " + header; var name = "_uglify_export_default_"; if (/^class\b/.test(header)) do {