@@ -4793,15 +4793,15 @@ merge(Compressor.prototype, {
|
|||||||
for (var a = node.argnames, i = a.length; --i >= 0;) {
|
for (var a = node.argnames, i = a.length; --i >= 0;) {
|
||||||
var sym = a[i];
|
var sym = a[i];
|
||||||
var def = sym.definition();
|
var def = sym.definition();
|
||||||
if (!(def.id in in_use_ids)) {
|
if (def.id in in_use_ids) {
|
||||||
|
trim = false;
|
||||||
|
if (indexOf_assign(def, sym) < 0) sym.__unused = null;
|
||||||
|
} else {
|
||||||
sym.__unused = true;
|
sym.__unused = true;
|
||||||
if (trim) {
|
if (trim) {
|
||||||
log(sym, "Dropping unused function argument {name}");
|
log(sym, "Dropping unused function argument {name}");
|
||||||
a.pop();
|
a.pop();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
trim = false;
|
|
||||||
if (indexOf_assign(def, sym) < 0) sym.__unused = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fns_with_marked_args.push(node);
|
fns_with_marked_args.push(node);
|
||||||
@@ -7047,9 +7047,10 @@ merge(Compressor.prototype, {
|
|||||||
value: null
|
value: null
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
if (!value) return;
|
||||||
var sym = make_node(AST_SymbolRef, name, name);
|
var sym = make_node(AST_SymbolRef, name, name);
|
||||||
def.references.push(sym);
|
def.references.push(sym);
|
||||||
if (value) expressions.push(make_node(AST_Assign, self, {
|
expressions.push(make_node(AST_Assign, self, {
|
||||||
operator: "=",
|
operator: "=",
|
||||||
left: sym,
|
left: sym,
|
||||||
right: value
|
right: value
|
||||||
@@ -7070,7 +7071,12 @@ merge(Compressor.prototype, {
|
|||||||
var symbol = make_node(AST_SymbolVar, name, name);
|
var symbol = make_node(AST_SymbolVar, name, name);
|
||||||
name.definition().orig.push(symbol);
|
name.definition().orig.push(symbol);
|
||||||
if (!value && in_loop) value = make_node(AST_Undefined, self);
|
if (!value && in_loop) value = make_node(AST_Undefined, self);
|
||||||
append_var(decls, expressions, symbol, value);
|
if ("__unused" in name) {
|
||||||
|
append_var(decls, expressions, symbol);
|
||||||
|
if (value) expressions.push(value);
|
||||||
|
} else {
|
||||||
|
append_var(decls, expressions, symbol, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
decls.reverse();
|
decls.reverse();
|
||||||
|
|||||||
@@ -4808,3 +4808,24 @@ issue_4155: {
|
|||||||
"function",
|
"function",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4159: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
inline: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
toplevel: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = 42, c = function(b) {
|
||||||
|
(b = a) && console.log(a++, b);
|
||||||
|
}(c = a);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = 42;
|
||||||
|
(b = a) && console.log(a++, b);
|
||||||
|
var b;
|
||||||
|
}
|
||||||
|
expect_stdout: "42 42"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user