minor clean up (#4118)
authorAlex Lam S.L <alexlamsl@gmail.com>
Wed, 16 Sep 2020 23:10:45 +0000 (00:10 +0100)
committerGitHub <noreply@github.com>
Wed, 16 Sep 2020 23:10:45 +0000 (07:10 +0800)
lib/compress.js

index 89d698d..76be475 100644 (file)
@@ -4453,7 +4453,12 @@ merge(Compressor.prototype, {
                     node.value.walk(tw);
                     mark(node.name, true);
                 } else {
-                    declarations.add(node.name.definition().id, node.name);
+                    var id = node.name.definition().id;
+                    if (!(id in references)) {
+                        declarations.add(id, node.name);
+                    } else if (references[id]) {
+                        references[id].push(node.name);
+                    }
                 }
                 return true;
             }
@@ -4478,11 +4483,6 @@ merge(Compressor.prototype, {
                     continue;
                 }
                 var orig = [], refs = [];
-                if (declarations.has(id)) declarations.get(id).forEach(function(sym) {
-                    sym.thedef = def;
-                    sym.name = def.name;
-                    orig.push(sym);
-                });
                 references[id].forEach(function(sym) {
                     sym.thedef = def;
                     sym.name = def.name;
@@ -4529,7 +4529,8 @@ merge(Compressor.prototype, {
             } else if (self.variables.get(def.name) !== def || compressor.exposed(def)) {
                 references[def.id] = false;
             } else {
-                var refs = [ sym ];
+                var refs = declarations.get(def.id) || [];
+                refs.push(sym);
                 references[def.id] = refs;
                 if (write_only) {
                     refs.segment = segment;