diff --git a/lib/parse.js b/lib/parse.js index 5f868018..18207379 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -2373,10 +2373,7 @@ function parse($TEXT, options) { } } - var is_definition = - is("keyword", "var") || is("keyword", "let") || is("keyword", "const") || - is("keyword", "class") || is("keyword", "function"); - + var is_definition = is("keyword", "var") || is("keyword", "let") || is("keyword", "const"); if (is_definition) { exported_definition = statement(); } else { diff --git a/test/compress/harmony.js b/test/compress/harmony.js index 12f4178c..a56e7757 100644 --- a/test/compress/harmony.js +++ b/test/compress/harmony.js @@ -241,6 +241,30 @@ export_default_array: { expect_exact: "export default[3,foo];" } +export_default_anon_function: { + options = { + evaluate: true, + } + input: { + export default function(){ + console.log(1 + 2); + } + } + expect_exact: "export default function(){console.log(3)};" +} + +export_default_anon_class: { + options = { + evaluate: true, + } + input: { + export default class { + foo() { console.log(1 + 2); } + } + } + expect_exact: "export default class{foo(){console.log(3)}};" +} + export_module_statement: { input: { export * from "a.js";