@@ -3207,18 +3207,21 @@ merge(Compressor.prototype, {
|
||||
if (body.length == 1 && body[0] instanceof AST_Return) {
|
||||
value = body[0].value;
|
||||
if (!value) return make_node(AST_Undefined, self);
|
||||
value.walk(new TreeWalker(function(node) {
|
||||
var tw = new TreeWalker(function(node) {
|
||||
if (value === self) return true;
|
||||
if (node instanceof AST_SymbolRef && matches(node.scope.find_variable(node))
|
||||
|| node instanceof AST_This && matches(node)) {
|
||||
if (node instanceof AST_SymbolRef) {
|
||||
var ref = node.scope.find_variable(node);
|
||||
if (ref && ref.scope.parent_scope === fn.parent_scope) {
|
||||
value = self;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (node instanceof AST_This && !tw.find_parent(AST_Scope)) {
|
||||
value = self;
|
||||
return true;
|
||||
}
|
||||
|
||||
function matches(ref) {
|
||||
return ref && ref.scope.parent_scope === fn.parent_scope;
|
||||
}
|
||||
}));
|
||||
});
|
||||
value.walk(tw);
|
||||
if (value !== self) value = best_of(compressor, value, self);
|
||||
} else {
|
||||
value = self;
|
||||
|
||||
Reference in New Issue
Block a user