@@ -11997,6 +11997,8 @@ Compressor.prototype.compress = function(node) {
|
|||||||
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 (def.redefined()) {
|
||||||
|
single_use = false;
|
||||||
} else if (recursive_ref(compressor, def, fixed)) {
|
} 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) {
|
||||||
|
|||||||
@@ -1872,3 +1872,37 @@ issue_5476: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "undefined"
|
expect_stdout: "undefined"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_5516: {
|
||||||
|
options = {
|
||||||
|
inline: true,
|
||||||
|
reduce_funcs: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
console.log(typeof function() {
|
||||||
|
try {} catch (a) {
|
||||||
|
(function f() {
|
||||||
|
a;
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const a = function() {};
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
console.log(typeof function() {
|
||||||
|
try {} catch (a) {
|
||||||
|
void a;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const a = function() {};
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect_stdout: "function"
|
||||||
|
}
|
||||||
|
|||||||
@@ -613,3 +613,35 @@ issue_4954: {
|
|||||||
]
|
]
|
||||||
node_version: ">=4"
|
node_version: ">=4"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_5516: {
|
||||||
|
options = {
|
||||||
|
reduce_funcs: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
varify: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
"use strict";
|
||||||
|
console.log(typeof function() {
|
||||||
|
{
|
||||||
|
let a;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const a = function() {};
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
"use strict";
|
||||||
|
console.log(typeof function() {
|
||||||
|
{
|
||||||
|
const a = function() {};
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect_stdout: "function"
|
||||||
|
node_version: ">=4"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user