fix corner case indefault_values

fixes #4510
This commit is contained in:
alexlamsl 2021-01-05 23:38:45 +08:00
parent 6eceac0966
commit 1f67c5c3ca
2 changed files with 50 additions and 1 deletions

View File

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

View File

@ -1479,3 +1479,51 @@ issue_4502_4: {
expect_stdout: "42" expect_stdout: "42"
node_version: ">=6" 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"
}