fix unused on export of function

This commit is contained in:
alexlamsl 2017-05-26 04:38:11 +08:00
parent 2d45c1ff30
commit 9edb72fe01
2 changed files with 33 additions and 1 deletions

View File

@ -2021,7 +2021,7 @@ merge(Compressor.prototype, {
var tw = new TreeWalker(function(node, descend){
if (node !== self) {
if (node instanceof AST_Defun || node instanceof AST_DefClass) {
if (!drop_funcs && scope === self) {
if ((!drop_funcs || tw.parent() instanceof AST_Export) && scope === self) {
var node_def = node.name.definition();
if (node_def.global && !(node_def.id in in_use_ids)) {
in_use_ids[node_def.id] = true;

View File

@ -133,3 +133,35 @@ export_mangle_6: {
}
expect_exact: "export let foo=1;"
}
export_toplevel_1: {
options = {
toplevel: true,
unused: true,
}
input: {
function f(){}
export function g(){};
export default function h(){};
}
expect: {
export function g(){};
export default function(){};
}
}
export_toplevel_2: {
options = {
toplevel: true,
unused: true,
}
input: {
class A {}
export class B {};
export default class C {};
}
expect: {
export class B {};
export default class C {};
}
}