convert `while` into `for`
authorMihai Bazon <mihai@bazon.net>
Mon, 5 Nov 2012 14:01:20 +0000 (16:01 +0200)
committerMihai Bazon <mihai@bazon.net>
Mon, 5 Nov 2012 14:01:20 +0000 (16:01 +0200)
lib/compress.js

index a7a6172..59c9128 100644 (file)
@@ -1118,6 +1118,15 @@ merge(Compressor.prototype, {
         return self;
     });
 
+    OPT(AST_While, function(self, compressor) {
+        if (!compressor.option("loops")) return self;
+        self = AST_DWLoop.prototype.optimize.call(self, compressor);
+        if (self instanceof AST_While) {
+            self = make_node(AST_For, self, self);
+        }
+        return self;
+    });
+
     OPT(AST_For, function(self, compressor){
         var cond = self.condition;
         if (cond) {