aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2021-01-12 19:48:46 +0000
committerGitHub <noreply@github.com>2021-01-13 03:48:46 +0800
commitc11a7489085c5a9c6a2f82be0f3b356a5dffa5a9 (patch)
tree213f2dd24148db2c11c013843c8be98220e2b4c6
parent90017051f2bb707f1062f3399c7b8d7a58e8c7ba (diff)
downloadtracifyjs-c11a7489085c5a9c6a2f82be0f3b356a5dffa5a9.tar.gz
tracifyjs-c11a7489085c5a9c6a2f82be0f3b356a5dffa5a9.zip
fix corner case in `merge_vars` (#4550)
fixes #4548
-rw-r--r--lib/compress.js2
-rw-r--r--test/compress/default-values.js26
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/compress.js b/lib/compress.js
index dde50e04..80dd7eab 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -4979,7 +4979,9 @@ merge(Compressor.prototype, {
var marker = new TreeWalker(function(node) {
if (node instanceof AST_Destructured) return;
if (node instanceof AST_DefaultValue) {
+ push();
node.value.walk(tw);
+ pop();
node.name.walk(marker);
} else if (node instanceof AST_DestructuredKeyVal) {
if (node.key instanceof AST_Node) {
diff --git a/test/compress/default-values.js b/test/compress/default-values.js
index 985651a3..6fc2d3f5 100644
--- a/test/compress/default-values.js
+++ b/test/compress/default-values.js
@@ -1570,3 +1570,29 @@ issue_4540: {
expect_stdout: "undefined"
node_version: ">=6"
}
+
+issue_4548: {
+ options = {
+ merge_vars: true,
+ toplevel: true,
+ }
+ input: {
+ A = "foo";
+ var a = A;
+ [ b = c = "bar" ] = [ console, console.log(a) ];
+ console.log(c);
+ var c;
+ }
+ expect: {
+ A = "foo";
+ var a = A;
+ [ b = c = "bar" ] = [ console, console.log(a) ];
+ console.log(c);
+ var c;
+ }
+ expect_stdout: [
+ "foo",
+ "undefined",
+ ]
+ node_version: ">=6"
+}