@@ -4746,7 +4746,8 @@ merge(Compressor.prototype, {
|
||||
node.definitions.forEach(function(defn) {
|
||||
var def = defn.name.definition();
|
||||
var_defs_by_id.add(def.id, defn);
|
||||
if (!drop_vars && !(def.id in in_use_ids)) {
|
||||
if ((!drop_vars || (node instanceof AST_Const ? def.redefined() : def.const_redefs))
|
||||
&& !(def.id in in_use_ids)) {
|
||||
in_use_ids[def.id] = true;
|
||||
in_use.push(def);
|
||||
}
|
||||
@@ -4776,14 +4777,7 @@ merge(Compressor.prototype, {
|
||||
// symbols (that may not be in_use).
|
||||
tw = new TreeWalker(scan_ref_scoped);
|
||||
for (var i = 0; i < in_use.length; i++) {
|
||||
var in_use_def = in_use[i];
|
||||
if (in_use_def.const_redefs) in_use_def.const_redefs.forEach(function(def) {
|
||||
if (!(def.id in in_use_ids)) {
|
||||
in_use_ids[def.id] = true;
|
||||
in_use.push(def);
|
||||
}
|
||||
});
|
||||
var init = initializations.get(in_use_def.id);
|
||||
var init = initializations.get(in_use[i].id);
|
||||
if (init) init.forEach(function(init) {
|
||||
init.walk(tw);
|
||||
});
|
||||
@@ -4944,6 +4938,7 @@ merge(Compressor.prototype, {
|
||||
}
|
||||
} else if (compressor.option("functions")
|
||||
&& !compressor.option("ie8")
|
||||
&& !(node instanceof AST_Const)
|
||||
&& var_defs.length == 1
|
||||
&& sym.assignments == 0
|
||||
&& def.value instanceof AST_Function
|
||||
|
||||
@@ -240,12 +240,8 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
|
||||
}
|
||||
// ensure compression works if `const` reuses a scope variable
|
||||
if (node instanceof AST_SymbolConst) {
|
||||
var def = node.definition();
|
||||
var redef = def.redefined();
|
||||
if (redef) {
|
||||
if (!redef.const_redefs) redef.const_redefs = [];
|
||||
redef.const_redefs.push(def);
|
||||
}
|
||||
var redef = node.definition().redefined();
|
||||
if (redef) redef.const_redefs = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user