fix corner case indefault_values (#4511)

fixes #4510
This commit is contained in:
Alex Lam S.L
2021-01-05 17:26:19 +00:00
committed by GitHub
parent 7ebfb22d16
commit 4c89550c43
2 changed files with 50 additions and 1 deletions

View File

@@ -6143,8 +6143,9 @@ merge(Compressor.prototype, {
var values = value instanceof AST_Array && value.elements;
var elements = [];
node.elements.forEach(function(element, index) {
if (element instanceof AST_Hole) return;
value = values && values[index];
if (value instanceof AST_Spread) value = values = null;
if (element instanceof AST_Hole) return;
element = element.transform(trimmer);
if (element) elements[index] = element;
});

View File

@@ -1479,3 +1479,51 @@ issue_4502_4: {
expect_stdout: "42"
node_version: ">=6"
}
issue_4510_1: {
options = {
default_values: true,
unused: true,
}
input: {
var a = [];
var [ , b = console.log("PASS") ] = [ ...a, null ];
}
expect: {
var a = [];
var [ , b = console.log("PASS") ] = [ ...a, null ];
}
expect_stdout: "PASS"
node_version: ">=6"
}
issue_4510_2: {
options = {
default_values: true,
unused: true,
}
input: {
var o = {
p: void 0,
};
var {
p: a = console.log("PASS"),
} = {
p: null,
...o,
};
}
expect: {
var o = {
p: void 0,
};
var {
p: a = console.log("PASS"),
} = {
p: null,
...o,
};
}
expect_stdout: "PASS"
node_version: ">=8"
}