support export statements (#4650)
This commit is contained in:
@@ -173,6 +173,7 @@ Compressor.prototype = new TreeTransformer;
|
||||
merge(Compressor.prototype, {
|
||||
option: function(key) { return this.options[key] },
|
||||
exposed: function(def) {
|
||||
if (def.exported) return true;
|
||||
if (def.undeclared) return true;
|
||||
if (!(def.global || def.scope.resolve() instanceof AST_Toplevel)) return false;
|
||||
var toplevel = this.toplevel;
|
||||
@@ -5583,7 +5584,7 @@ merge(Compressor.prototype, {
|
||||
if (scope === self) {
|
||||
if (node instanceof AST_LambdaDefinition) {
|
||||
var def = node.name.definition();
|
||||
if (!drop_funcs && !(def.id in in_use_ids)) {
|
||||
if ((!drop_funcs || def.exported) && !(def.id in in_use_ids)) {
|
||||
in_use_ids[def.id] = true;
|
||||
in_use.push(def);
|
||||
}
|
||||
@@ -5602,7 +5603,7 @@ merge(Compressor.prototype, {
|
||||
var redef = def.redefined();
|
||||
if (redef) var_defs[redef.id] = (var_defs[redef.id] || 0) + 1;
|
||||
}
|
||||
if (!(def.id in in_use_ids) && (!drop_vars
|
||||
if (!(def.id in in_use_ids) && (!drop_vars || def.exported
|
||||
|| (node instanceof AST_Const ? def.redefined() : def.const_redefs)
|
||||
|| !(node instanceof AST_Var || is_safe_lexical(def)))) {
|
||||
in_use_ids[def.id] = true;
|
||||
|
||||
Reference in New Issue
Block a user