parent
f4ae267920
commit
f5dbb672b9
|
|
@ -10913,9 +10913,10 @@ merge(Compressor.prototype, {
|
||||||
return self;
|
return self;
|
||||||
});
|
});
|
||||||
|
|
||||||
function recursive_ref(compressor, def) {
|
function recursive_ref(compressor, def, fn) {
|
||||||
var level = 0, node = compressor.self();
|
var level = 0, node = compressor.self();
|
||||||
do {
|
do {
|
||||||
|
if (node === fn) return node;
|
||||||
if (is_lambda(node) && node.name && node.name.definition() === def) return node;
|
if (is_lambda(node) && node.name && node.name.definition() === def) return node;
|
||||||
} while (node = compressor.parent(level++));
|
} while (node = compressor.parent(level++));
|
||||||
}
|
}
|
||||||
|
|
@ -10951,7 +10952,7 @@ merge(Compressor.prototype, {
|
||||||
if ((def.scope !== self.scope.resolve() || def.in_loop)
|
if ((def.scope !== self.scope.resolve() || def.in_loop)
|
||||||
&& (!compressor.option("reduce_funcs") || def.escaped.depth == 1 || fixed.inlined)) {
|
&& (!compressor.option("reduce_funcs") || def.escaped.depth == 1 || fixed.inlined)) {
|
||||||
single_use = false;
|
single_use = false;
|
||||||
} else if (recursive_ref(compressor, def)) {
|
} else if (recursive_ref(compressor, def, fixed)) {
|
||||||
single_use = false;
|
single_use = false;
|
||||||
} else if (fixed.name && fixed.name.definition() !== def) {
|
} else if (fixed.name && fixed.name.definition() !== def) {
|
||||||
single_use = false;
|
single_use = false;
|
||||||
|
|
|
||||||
|
|
@ -7677,3 +7677,22 @@ issue_4949: {
|
||||||
}
|
}
|
||||||
expect_stdout: "0 1"
|
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"
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user