fix corner case in unused (#5668)

fixes #5663
This commit is contained in:
Alex Lam S.L
2022-09-17 06:32:41 +01:00
committed by GitHub
parent e4bff315eb
commit eb22f0101e
4 changed files with 47 additions and 5 deletions

View File

@@ -7937,7 +7937,14 @@ Compressor.prototype.compress = function(node) {
drop = false;
value = value.fixed_value();
}
var values = value instanceof AST_Array && value.elements;
var native, values;
if (value instanceof AST_Array) {
native = true;
values = value.elements;
} else {
native = value && value.is_string(compressor);
values = false;
}
var elements = [], newValues = drop && [], pos = 0;
node.elements.forEach(function(element, index) {
value = values && values[index];
@@ -7988,8 +7995,9 @@ Compressor.prototype.compress = function(node) {
value = value.clone();
value.elements = newValues;
}
if (!node.rest && (value instanceof AST_Array
|| value && value.is_string(compressor))) switch (elements.length) {
if (!native) {
elements.length = node.elements.length;
} else if (!node.rest) switch (elements.length) {
case 0:
if (node === root) break;
if (drop) value = value.drop_side_effect_free(compressor);