Only descend twice after drop_unused if it's the same node type.

Fix #345
This commit is contained in:
Mihai Bazon
2013-11-08 11:57:17 +02:00
parent eab99a1c3d
commit 7d11b96f48

View File

@@ -85,13 +85,14 @@ merge(Compressor.prototype, {
}, },
before: function(node, descend, in_list) { before: function(node, descend, in_list) {
if (node._squeezed) return node; if (node._squeezed) return node;
var was_scope = false;
if (node instanceof AST_Scope) { if (node instanceof AST_Scope) {
//node.drop_unused(this);
node = node.hoist_declarations(this); node = node.hoist_declarations(this);
was_scope = true;
} }
descend(node, this); descend(node, this);
node = node.optimize(this); node = node.optimize(this);
if (node instanceof AST_Scope) { if (was_scope && node instanceof AST_Scope) {
node.drop_unused(this); node.drop_unused(this);
descend(node, this); descend(node, this);
} }