@@ -5460,7 +5460,7 @@ merge(Compressor.prototype, {
|
|||||||
var calls_to_drop_args = [];
|
var calls_to_drop_args = [];
|
||||||
var fns_with_marked_args = [];
|
var fns_with_marked_args = [];
|
||||||
var trimmer = new TreeTransformer(function(node) {
|
var trimmer = new TreeTransformer(function(node) {
|
||||||
if (node instanceof AST_DefaultValue) return trim_default(tt, trimmer, node);
|
if (node instanceof AST_DefaultValue) return trim_default(trimmer, node);
|
||||||
if (node instanceof AST_DestructuredArray) {
|
if (node instanceof AST_DestructuredArray) {
|
||||||
var trim = true;
|
var trim = true;
|
||||||
for (var i = node.elements.length; --i >= 0;) {
|
for (var i = node.elements.length; --i >= 0;) {
|
||||||
@@ -5482,10 +5482,13 @@ merge(Compressor.prototype, {
|
|||||||
node.key = node.key.transform(tt);
|
node.key = node.key.transform(tt);
|
||||||
retain = node.key.has_side_effects(compressor);
|
retain = node.key.has_side_effects(compressor);
|
||||||
}
|
}
|
||||||
if (retain && is_decl(node.value)) return node;
|
if (retain && is_decl(node.value)) {
|
||||||
|
node.value = node.value.transform(tt);
|
||||||
|
} else {
|
||||||
var value = node.value.transform(trimmer);
|
var value = node.value.transform(trimmer);
|
||||||
if (!value) return List.skip;
|
if (!value) return List.skip;
|
||||||
node.value = value;
|
node.value = value;
|
||||||
|
}
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
if (node instanceof AST_SymbolDeclaration) return node.definition().id in in_use_ids ? node : null;
|
if (node instanceof AST_SymbolDeclaration) return node.definition().id in in_use_ids ? node : null;
|
||||||
@@ -6042,7 +6045,7 @@ merge(Compressor.prototype, {
|
|||||||
return (node instanceof AST_DefaultValue ? node.name : node) instanceof AST_SymbolDeclaration;
|
return (node instanceof AST_DefaultValue ? node.name : node) instanceof AST_SymbolDeclaration;
|
||||||
}
|
}
|
||||||
|
|
||||||
function trim_default(tt, trimmer, node) {
|
function trim_default(trimmer, node) {
|
||||||
node.value = node.value.transform(tt);
|
node.value = node.value.transform(tt);
|
||||||
var name = node.name.transform(trimmer);
|
var name = node.name.transform(trimmer);
|
||||||
if (!name) {
|
if (!name) {
|
||||||
@@ -6076,7 +6079,7 @@ merge(Compressor.prototype, {
|
|||||||
if (compressor.option("default_values") && value && value.is_defined(compressor)) {
|
if (compressor.option("default_values") && value && value.is_defined(compressor)) {
|
||||||
node = node.name;
|
node = node.name;
|
||||||
} else {
|
} else {
|
||||||
return trim_default(tt, trimmer, node);
|
return trim_default(trimmer, node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (node instanceof AST_DestructuredArray) {
|
if (node instanceof AST_DestructuredArray) {
|
||||||
@@ -6125,6 +6128,7 @@ merge(Compressor.prototype, {
|
|||||||
retain = false;
|
retain = false;
|
||||||
}
|
}
|
||||||
if (retain && is_decl(prop.value)) {
|
if (retain && is_decl(prop.value)) {
|
||||||
|
prop.value = prop.value.transform(tt);
|
||||||
properties.push(prop);
|
properties.push(prop);
|
||||||
} else {
|
} else {
|
||||||
var newValue = prop.value.transform(trimmer);
|
var newValue = prop.value.transform(trimmer);
|
||||||
|
|||||||
@@ -1160,3 +1160,31 @@ issue_4461_2: {
|
|||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
node_version: ">=6"
|
node_version: ">=6"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4468: {
|
||||||
|
options = {
|
||||||
|
evaluate: true,
|
||||||
|
keep_fargs: false,
|
||||||
|
pure_getters: "strict",
|
||||||
|
reduce_vars: true,
|
||||||
|
side_effects: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
(function(a) {
|
||||||
|
var {
|
||||||
|
[console.log("PASS")]: b = a && (a.p = 0),
|
||||||
|
} = 0;
|
||||||
|
a;
|
||||||
|
})(1234);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
(function() {
|
||||||
|
var {
|
||||||
|
[console.log("PASS")]: b = 0,
|
||||||
|
} = 0;
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=6"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user