enhance `varify` (#4303)
authorAlex Lam S.L <alexlamsl@gmail.com>
Wed, 18 Nov 2020 23:58:33 +0000 (23:58 +0000)
committerGitHub <noreply@github.com>
Wed, 18 Nov 2020 23:58:33 +0000 (07:58 +0800)
lib/compress.js
test/compress/varify.js

index f0453d6..acd15f5 100644 (file)
@@ -7124,7 +7124,9 @@ merge(Compressor.prototype, {
                         var def = name.definition();
                         def.orig[def.orig.indexOf(node)] = name;
                         var scope = def.scope.resolve();
-                        if (def.scope !== scope) scope.variables.set(def.name, def);
+                        if (def.scope === scope) return;
+                        def.scope = scope;
+                        scope.variables.set(def.name, def);
                     }),
                     value: defn.value
                 });
index 95acd03..4d2a6b5 100644 (file)
@@ -390,3 +390,22 @@ issue_4290_1_let: {
     expect_stdout: true
     node_version: ">=4"
 }
+
+drop_forin_let: {
+    options = {
+        loops: true,
+        toplevel: true,
+        unused: true,
+        varify: true,
+    }
+    input: {
+        "use strict";
+        for (let a in console.log("PASS"));
+    }
+    expect: {
+        "use strict";
+        console.log("PASS");
+    }
+    expect_stdout: "PASS"
+    node_version: ">=4"
+}