Optimize seq,void 0. Close #377.
authorMihai Bazon <mihai@bazon.net>
Sun, 22 Dec 2013 09:36:45 +0000 (11:36 +0200)
committerMihai Bazon <mihai@bazon.net>
Sun, 22 Dec 2013 09:36:45 +0000 (11:36 +0200)
    (x, void 0)    => void x
    (x, undefined) => void x

lib/compress.js

index 2a8b4c2..a3ba16a 100644 (file)
@@ -1836,6 +1836,18 @@ merge(Compressor.prototype, {
                 return self.car;
             }
         }
+        if (self.cdr instanceof AST_UnaryPrefix
+            && self.cdr.operator == "void"
+            && !self.cdr.expression.has_side_effects(compressor)) {
+            self.cdr.operator = self.car;
+            return self.cdr;
+        }
+        if (self.cdr instanceof AST_Undefined) {
+            return make_node(AST_UnaryPrefix, self, {
+                operator   : "void",
+                expression : self.car
+            });
+        }
         return self;
     });