more constant folding (for names defined with `const`)
authorMihai Bazon <mihai@bazon.net>
Tue, 2 Oct 2012 09:45:17 +0000 (12:45 +0300)
committerMihai Bazon <mihai@bazon.net>
Tue, 2 Oct 2012 09:45:17 +0000 (12:45 +0300)
lib/compress.js

index 86d1ce7..a6edf41 100644 (file)
@@ -582,6 +582,16 @@ merge(Compressor.prototype, {
                 ? ev(this.consequent)
                 : ev(this.alternative);
         });
+        def(AST_SymbolRef, function(){
+            var d = this.definition();
+            if (d && d.constant) {
+                var orig = d.orig[0];
+                if (orig) orig = orig.init[0];
+                orig = orig && orig.value;
+                if (orig) return ev(orig);
+            }
+            throw def;
+        });
     })(function(node, func){
         node.DEFMETHOD("_eval", func);
     });