Only descend twice after drop_unused if it's the same node type.
authorMihai Bazon <mihai@bazon.net>
Fri, 8 Nov 2013 09:57:17 +0000 (11:57 +0200)
committerMihai Bazon <mihai@bazon.net>
Fri, 8 Nov 2013 09:57:17 +0000 (11:57 +0200)
Fix #345

lib/compress.js

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