@@ -6042,27 +6042,16 @@ merge(Compressor.prototype, {
|
||||
function compose(child, level, find) {
|
||||
var parent = compressor.parent(level);
|
||||
if (!parent) return find;
|
||||
if (parent instanceof AST_DestructuredKeyVal) {
|
||||
var destructured = compressor.parent(level + 1);
|
||||
if (parent.key === child) {
|
||||
var fn = compressor.parent(level + 2);
|
||||
if (fn instanceof AST_Lambda) {
|
||||
return compose(fn, level + 3, fn.argnames.indexOf(destructured) >= 0 ? function(name) {
|
||||
var def = find(name);
|
||||
if (def) return def;
|
||||
def = fn.variables.get(name);
|
||||
if (def) {
|
||||
var sym = def.orig[0];
|
||||
if (sym instanceof AST_SymbolFunarg || sym instanceof AST_SymbolLambda) return def;
|
||||
}
|
||||
} : function(name) {
|
||||
return find(name) || fn.variables.get(name);
|
||||
});
|
||||
}
|
||||
var in_arg = parent instanceof AST_Lambda && member(child, parent.argnames);
|
||||
return compose(parent, level + 1, in_arg ? function(name) {
|
||||
var def = find(name);
|
||||
if (def) return def;
|
||||
def = parent.variables.get(name);
|
||||
if (def) {
|
||||
var sym = def.orig[0];
|
||||
if (sym instanceof AST_SymbolFunarg || sym instanceof AST_SymbolLambda) return def;
|
||||
}
|
||||
return compose(destructured, level + 2, find);
|
||||
}
|
||||
return compose(parent, level + 1, parent.variables ? function(name) {
|
||||
} : parent.variables ? function(name) {
|
||||
return find(name) || parent.variables.get(name);
|
||||
} : find);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user