From: Alex Lam S.L Date: Sat, 6 Jan 2018 13:05:21 +0000 (+0800) Subject: handle trailing line comments correctly (#2736) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=659c8a763265dfb6d567f5a41422f5f9095af4d8;p=UglifyJS.git handle trailing line comments correctly (#2736) fixes #2734 --- diff --git a/lib/output.js b/lib/output.js index 58521e3c..83cd37b8 100644 --- a/lib/output.js +++ b/lib/output.js @@ -534,7 +534,11 @@ function OutputStream(options) { var token = node.end; if (!token) return; var comments = token[tail ? "comments_before" : "comments_after"]; - if (comments && comments._dumped !== self) { + if (comments + && comments._dumped !== self + && (node instanceof AST_Statement || all(comments, function(c) { + return !/comment[134]/.test(c.type); + }))) { comments._dumped = self; var insert = OUTPUT.length; comments.filter(comment_filter, node).forEach(function(c, i) { @@ -599,7 +603,7 @@ function OutputStream(options) { add_mapping : add_mapping, option : function(opt) { return options[opt] }, prepend_comments: readonly ? noop : prepend_comments, - append_comments : readonly ? noop : append_comments, + append_comments : readonly || comment_filter === return_false ? noop : append_comments, line : function() { return current_line }, col : function() { return current_col }, pos : function() { return current_pos }, diff --git a/test/mocha/comment.js b/test/mocha/comment.js index 3bad9e01..4db46b52 100644 --- a/test/mocha/comment.js +++ b/test/mocha/comment.js @@ -219,4 +219,24 @@ describe("Comment", function() { if (result.error) throw result.error; assert.strictEqual(result.code, "/*a*/ /*b*/(function(){/*c*/}/*d*/ /*e*/)();"); }); + + it("Should output line comments after statements", function() { + var result = uglify.minify([ + "x()//foo", + "{y()//bar", + "}", + ].join("\n"), { + compress: false, + mangle: false, + output: { + comments: "all", + }, + }); + if (result.error) throw result.error; + assert.strictEqual(result.code, [ + "x();//foo", + "{y();//bar", + "}", + ].join("\n")); + }); });