enhance unused (#3662)
This commit is contained in:
@@ -3879,7 +3879,7 @@ merge(Compressor.prototype, {
|
||||
});
|
||||
return true;
|
||||
}
|
||||
return scan_ref_scoped(node, descend);
|
||||
return scan_ref_scoped(node, descend, true);
|
||||
});
|
||||
self.walk(tw);
|
||||
// pass 2: for every used symbol we need to walk its
|
||||
@@ -3913,6 +3913,11 @@ merge(Compressor.prototype, {
|
||||
if (node instanceof AST_Assign) {
|
||||
if (!in_use || node.left === sym && def.id in fixed_ids && fixed_ids[def.id] !== node) {
|
||||
value = get_rhs(node);
|
||||
if (node.write_only) {
|
||||
value = value.drop_side_effect_free(compressor) || make_node(AST_Number, node, {
|
||||
value: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if (!in_use) {
|
||||
value = make_node(AST_Number, node, {
|
||||
@@ -4182,7 +4187,7 @@ merge(Compressor.prototype, {
|
||||
return rhs.right.has_side_effects(compressor) ? rhs : rhs.right;
|
||||
}
|
||||
|
||||
function scan_ref_scoped(node, descend) {
|
||||
function scan_ref_scoped(node, descend, init) {
|
||||
var node_def, props = [], sym = assign_as_unused(node, props);
|
||||
if (sym && self.variables.get(sym.name) === (node_def = sym.definition())) {
|
||||
props.forEach(function(prop) {
|
||||
@@ -4191,7 +4196,11 @@ merge(Compressor.prototype, {
|
||||
if (node instanceof AST_Assign) {
|
||||
if (node.write_only === "p" && node.right.may_throw_on_access(compressor)) return;
|
||||
var right = get_rhs(node);
|
||||
right.walk(tw);
|
||||
if (init && node.write_only && node_def.scope === self && !right.has_side_effects(compressor)) {
|
||||
initializations.add(node_def.id, right);
|
||||
} else {
|
||||
right.walk(tw);
|
||||
}
|
||||
if (node.left === sym) {
|
||||
if (!node_def.chained && sym.fixed_value(true) === right) {
|
||||
fixed_ids[node_def.id] = node;
|
||||
|
||||
Reference in New Issue
Block a user