@@ -2921,7 +2921,29 @@ merge(Compressor.prototype, {
|
||||
if (value) {
|
||||
lvalues.add(node.name, is_modified(compressor, tw, node, value, 0));
|
||||
} else if (node instanceof AST_Lambda) {
|
||||
if (!(tw.find_parent(AST_Call) || tw.find_parent(AST_Scope))) return true;
|
||||
for (var level = 0, parent, child = node; parent = tw.parent(level++); child = parent) {
|
||||
if (parent instanceof AST_Assign) {
|
||||
if (parent.left === child) break;
|
||||
if (parent.operator == "=") continue;
|
||||
if (lazy_op[parent.operator.slice(0, -1)]) continue;
|
||||
break;
|
||||
}
|
||||
if (parent instanceof AST_Binary) {
|
||||
if (lazy_op[parent.operator]) continue;
|
||||
break;
|
||||
}
|
||||
if (parent instanceof AST_Call) return;
|
||||
if (parent instanceof AST_Scope) return;
|
||||
if (parent instanceof AST_Sequence) {
|
||||
if (parent.tail_node() === child) continue;
|
||||
break;
|
||||
}
|
||||
if (parent instanceof AST_Template) {
|
||||
if (parent.tag) return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if (find_arguments && node instanceof AST_Sub) {
|
||||
scope.each_argname(function(argname) {
|
||||
if (!compressor.option("reduce_vars") || argname.definition().assignments) {
|
||||
|
||||
@@ -743,3 +743,29 @@ issue_5145_2: {
|
||||
]
|
||||
node_version: ">=4"
|
||||
}
|
||||
|
||||
issue_5199: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
var a = function() {
|
||||
console.log(typeof b);
|
||||
}``;
|
||||
{
|
||||
const b = a;
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
var a = function() {
|
||||
console.log(typeof b);
|
||||
}``;
|
||||
{
|
||||
const b = a;
|
||||
}
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
node_version: ">=4"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user