@@ -8484,7 +8484,8 @@ Compressor.prototype.compress = function(node) {
84848484 && self.find_variable(sym.name) === sym.definition();
84858485 })) return node;
84868486 node.definitions.forEach(function(defn) {
8487- vars.set(defn.name.name, defn);
8487+ var name = defn.name.name;
8488+ if (!vars.has(name)) vars.set(name, defn);
84888489 });
84898490 var seq = node.to_assignments();
84908491 if (p instanceof AST_ForEnumeration && p.init === node) {
@@ -8511,13 +8512,14 @@ Compressor.prototype.compress = function(node) {
85118512 return !ref.in_arg;
85128513 })) vars.del(argname.name);
85138514 });
8514- vars.each(function(defn, name) {
8515+ vars.each(function(defn) {
8516+ var name = defn.name;
85158517 defn = defn.clone();
8516- defn.name = defn. name.clone();
8518+ defn.name = name.clone();
85178519 defn.value = null;
85188520 defns.push(defn);
8519- vars.set(name, defn) ;
8520- defn.name.definition(). orig.unshift( defn.name);
8521+ var orig = name.definition().orig ;
8522+ orig.splice( orig.indexOf(name), 0, defn.name);
85218523 });
85228524 if (defns.length > 0) hoisted.push(make_node(AST_Var, self, { definitions: defns }));
85238525 }
@@ -10348,8 +10350,8 @@ Compressor.prototype.compress = function(node) {
1034810350 }
1034910351 });
1035010352 def.references.push(name);
10353+ def.assignments++;
1035110354 }
10352- def.assignments++;
1035310355 def.eliminated++;
1035410356 def.single_use = false;
1035510357 return a;
0 commit comments