Skip to content

Commit

Permalink
retain comments within brackets (#2999)
Browse files Browse the repository at this point in the history
fixes #2998
  • Loading branch information
alexlamsl committed Mar 13, 2018
1 parent 5429234 commit 188c39e
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 9 deletions.
19 changes: 10 additions & 9 deletions lib/output.js
Expand Up @@ -886,18 +886,19 @@ function OutputStream(options) {
self.body.print(output);
output.semicolon();
});
function print_bracketed_empty(self, output) {
output.print("{");
output.with_indent(output.next_indent(), function() {
output.append_comments(self, true);
});
output.print("}");
}
function print_bracketed(self, output, allow_directives) {
if (self.body.length > 0) {
output.with_block(function() {
display_body(self.body, false, output, allow_directives);
});
} else {
output.print("{");
output.with_indent(output.next_indent(), function() {
output.append_comments(self, true);
});
output.print("}");
}
} else print_bracketed_empty(self, output);
};
DEFPRINT(AST_BlockStatement, function(self, output){
print_bracketed(self, output);
Expand Down Expand Up @@ -1092,7 +1093,7 @@ function OutputStream(options) {
});
output.space();
var last = self.body.length - 1;
if (last < 0) output.print("{}");
if (last < 0) print_bracketed_empty(self, output);
else output.with_block(function(){
self.body.forEach(function(branch, i){
output.indent(true);
Expand Down Expand Up @@ -1347,7 +1348,7 @@ function OutputStream(options) {
});
output.newline();
});
else output.print("{}");
else print_bracketed_empty(self, output);
});

function print_property_name(key, quote, output) {
Expand Down
20 changes: 20 additions & 0 deletions test/mocha/comment.js
Expand Up @@ -139,6 +139,26 @@ describe("Comment", function() {
assert.strictEqual(result.code, code);
});

it("Should retain comments within brackets", function() {
var code = [
"{/* foo */}",
"a({/* foo */});",
"while (a) {/* foo */}",
"switch (a) {/* foo */}",
"if (a) {/* foo */} else {/* bar */}",
].join("\n\n");
var result = uglify.minify(code, {
compress: false,
mangle: false,
output: {
beautify: true,
comments: "all",
},
});
if (result.error) throw result.error;
assert.strictEqual(result.code, code);
});

it("Should correctly preserve new lines around comments", function() {
var tests = [
[
Expand Down

0 comments on commit 188c39e

Please sign in to comment.