@@ -1424,8 +1424,9 @@ merge(Compressor.prototype, {
|
||||
if (!--replaced) abort = true;
|
||||
if (is_lhs(node, multi_replacer.parent())) return node;
|
||||
def.replaced++;
|
||||
value_def.replaced--;
|
||||
return rvalue.clone();
|
||||
var ref = rvalue.clone();
|
||||
value_def.references.push(ref);
|
||||
return ref;
|
||||
}
|
||||
// Skip (non-executed) functions and (leading) default case in switch statements
|
||||
if (node instanceof AST_Default || node instanceof AST_Scope) return node;
|
||||
@@ -5433,7 +5434,7 @@ merge(Compressor.prototype, {
|
||||
vars.set(def.name.name, def);
|
||||
++vars_found;
|
||||
});
|
||||
var seq = node.to_assignments(compressor);
|
||||
var seq = node.to_assignments();
|
||||
var p = tt.parent();
|
||||
if (p instanceof AST_ForIn && p.init === node) {
|
||||
if (seq) return seq;
|
||||
@@ -6716,21 +6717,19 @@ merge(Compressor.prototype, {
|
||||
AST_Let.DEFMETHOD("remove_initializers", remove_initializers);
|
||||
AST_Var.DEFMETHOD("remove_initializers", remove_initializers);
|
||||
|
||||
AST_Definitions.DEFMETHOD("to_assignments", function(compressor) {
|
||||
var reduce_vars = compressor.option("reduce_vars");
|
||||
var assignments = this.definitions.reduce(function(a, def) {
|
||||
if (def.value) {
|
||||
var name = make_node(AST_SymbolRef, def.name, def.name);
|
||||
a.push(make_node(AST_Assign, def, {
|
||||
AST_Definitions.DEFMETHOD("to_assignments", function() {
|
||||
var assignments = this.definitions.reduce(function(a, defn) {
|
||||
var def = defn.name.definition();
|
||||
if (defn.value) {
|
||||
var name = make_node(AST_SymbolRef, defn.name, defn.name);
|
||||
a.push(make_node(AST_Assign, defn, {
|
||||
operator : "=",
|
||||
left : name,
|
||||
right : def.value
|
||||
right : defn.value
|
||||
}));
|
||||
if (reduce_vars) name.definition().fixed = false;
|
||||
def.references.push(name);
|
||||
}
|
||||
def = def.name.definition();
|
||||
def.eliminated++;
|
||||
def.replaced--;
|
||||
return a;
|
||||
}, []);
|
||||
if (assignments.length == 0) return null;
|
||||
|
||||
Reference in New Issue
Block a user