Take out all comments from an AST_Exit's value
authorMihai Bazon <mihai@bazon.net>
Wed, 18 Dec 2013 11:30:26 +0000 (13:30 +0200)
committerMihai Bazon <mihai@bazon.net>
Wed, 18 Dec 2013 11:30:26 +0000 (13:30 +0200)
Fix #372

lib/output.js

index 37e30c0..1ef92dd 100644 (file)
@@ -386,13 +386,14 @@ function OutputStream(options) {
                 var comments = start.comments_before || [];
 
                 // XXX: ugly fix for https://github.com/mishoo/UglifyJS2/issues/112
-                //      if this node is `return` or `throw`, we cannot allow comments before
-                //      the returned or thrown value.
-                if (self instanceof AST_Exit && self.value
-                    && self.value.start.comments_before
-                    && self.value.start.comments_before.length > 0) {
-                    comments = comments.concat(self.value.start.comments_before);
-                    self.value.start.comments_before = [];
+                //               and https://github.com/mishoo/UglifyJS2/issues/372
+                if (self instanceof AST_Exit && self.value) {
+                    self.value.walk(new TreeWalker(function(node){
+                        if (node.start.comments_before) {
+                            comments = comments.concat(node.start.comments_before);
+                            node.start.comments_before = [];
+                        }
+                    }));
                 }
 
                 if (c.test) {