Use the negation hack rather than parens for a toplevel function expression call
authorMihai Bazon <mihai@bazon.net>
Thu, 9 May 2013 05:58:47 +0000 (08:58 +0300)
committerMihai Bazon <mihai@bazon.net>
Thu, 9 May 2013 05:58:47 +0000 (08:58 +0300)
(only in !beautify mode)

lib/output.js

index defd021..a13c92e 100644 (file)
@@ -351,7 +351,9 @@ function OutputStream(options) {
     AST_Node.DEFMETHOD("print", function(stream, force_parens){
         var self = this, generator = self._codegen;
         stream.push_node(self);
-        if (force_parens || self.needs_parens(stream)) {
+        var needs_parens = self.needs_parens(stream);
+        var fc = self instanceof AST_Function && !stream.option("beautify");
+        if (force_parens || (needs_parens && !fc)) {
             stream.with_parens(function(){
                 self.add_comments(stream);
                 self.add_source_map(stream);
@@ -359,6 +361,7 @@ function OutputStream(options) {
             });
         } else {
             self.add_comments(stream);
+            if (needs_parens && fc) stream.print("!");
             self.add_source_map(stream);
             generator(self, stream);
         }