aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2021-02-21 02:00:34 +0000
committerGitHub <noreply@github.com>2021-02-21 10:00:34 +0800
commitbfe3a8b5161457062224959bbb9938c106503f97 (patch)
treee8d190a5e06daba29ee5c398d7e5861974b165ee
parentae09773ba017ce65b261d15ed3098ae40c3b2a1b (diff)
downloadtracifyjs-bfe3a8b5161457062224959bbb9938c106503f97.tar.gz
tracifyjs-bfe3a8b5161457062224959bbb9938c106503f97.zip
fix corner case with `import` (#4672)
-rw-r--r--lib/scope.js2
-rw-r--r--test/compress/imports.js16
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/scope.js b/lib/scope.js
index f638890f..97027274 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -197,7 +197,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
} else if (node instanceof AST_SymbolLet) {
scope.def_variable(node).exported = exported;
} else if (node instanceof AST_SymbolVar) {
- defun.def_variable(node, null).exported = exported;
+ defun.def_variable(node, node instanceof AST_SymbolImport ? undefined : null).exported = exported;
entangle(defun, scope);
}
diff --git a/test/compress/imports.js b/test/compress/imports.js
index 03ebf997..f8313b06 100644
--- a/test/compress/imports.js
+++ b/test/compress/imports.js
@@ -128,3 +128,19 @@ rename_mangle: {
import * as r from "moz";
}
}
+
+keep_ref: {
+ options = {
+ reduce_vars: true,
+ toplevel: true,
+ unused: true,
+ }
+ input: {
+ import foo from "bar";
+ foo();
+ }
+ expect: {
+ import foo from "bar";
+ foo();
+ }
+}