fix corner case in `unused` (#4338)
authorAlex Lam S.L <alexlamsl@gmail.com>
Mon, 7 Dec 2020 05:23:53 +0000 (05:23 +0000)
committerGitHub <noreply@github.com>
Mon, 7 Dec 2020 05:23:53 +0000 (13:23 +0800)
fixes #4337

lib/compress.js
test/compress/async.js

index 005768b..09b2763 100644 (file)
@@ -6269,6 +6269,7 @@ merge(Compressor.prototype, {
             }
             return this;
         });
+        def(AST_AsyncFunction, return_null);
         def(AST_Binary, function(compressor, first_in_statement) {
             if (this.operator == "in" && !is_object(this.right)) {
                 var left = this.left.drop_side_effect_free(compressor, first_in_statement);
index 8da545b..0f99733 100644 (file)
@@ -264,3 +264,26 @@ issue_4335_2: {
     expect_stdout: "PASS"
     node_version: ">=8"
 }
+
+issue_4337: {
+    options = {
+        reduce_vars: true,
+        unused: true,
+    }
+    input: {
+        (function(a) {
+            a();
+        })(async function() {
+            console.log("PASS");
+        });
+    }
+    expect: {
+        (function(a) {
+            (async function() {
+                console.log("PASS");
+            })();
+        })();
+    }
+    expect_stdout: "PASS"
+    node_version: ">=8"
+}