@@ -10913,9 +10913,10 @@ merge(Compressor.prototype, {
|
||||
return self;
|
||||
});
|
||||
|
||||
function recursive_ref(compressor, def) {
|
||||
function recursive_ref(compressor, def, fn) {
|
||||
var level = 0, node = compressor.self();
|
||||
do {
|
||||
if (node === fn) return node;
|
||||
if (is_lambda(node) && node.name && node.name.definition() === def) return node;
|
||||
} while (node = compressor.parent(level++));
|
||||
}
|
||||
@@ -10951,7 +10952,7 @@ merge(Compressor.prototype, {
|
||||
if ((def.scope !== self.scope.resolve() || def.in_loop)
|
||||
&& (!compressor.option("reduce_funcs") || def.escaped.depth == 1 || fixed.inlined)) {
|
||||
single_use = false;
|
||||
} else if (recursive_ref(compressor, def)) {
|
||||
} else if (recursive_ref(compressor, def, fixed)) {
|
||||
single_use = false;
|
||||
} else if (fixed.name && fixed.name.definition() !== def) {
|
||||
single_use = false;
|
||||
|
||||
@@ -7677,3 +7677,22 @@ issue_4949: {
|
||||
}
|
||||
expect_stdout: "0 1"
|
||||
}
|
||||
|
||||
issue_5048: {
|
||||
options = {
|
||||
reduce_funcs: true,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
console.log(function() {
|
||||
var a = function() {
|
||||
return a + 42;
|
||||
};
|
||||
}());
|
||||
}
|
||||
expect: {
|
||||
console.log(function() {}());
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user