fix corner case in comments (#3500)
This commit is contained in:
@@ -452,7 +452,7 @@ function OutputStream(options) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
var scan = node instanceof AST_Exit && node.value;
|
var scan = node instanceof AST_Exit && node.value;
|
||||||
var comments = dump(node);
|
var comments = dump(node);
|
||||||
if (!comments) return;
|
if (!comments) comments = [];
|
||||||
|
|
||||||
if (scan) {
|
if (scan) {
|
||||||
var tw = new TreeWalker(function(node) {
|
var tw = new TreeWalker(function(node) {
|
||||||
|
|||||||
@@ -48,7 +48,8 @@ describe("comments", function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should handle comment within return correctly", function() {
|
describe("comment within return", function() {
|
||||||
|
it("Should handle leading return", function() {
|
||||||
var result = UglifyJS.minify([
|
var result = UglifyJS.minify([
|
||||||
"function unequal(x, y) {",
|
"function unequal(x, y) {",
|
||||||
" return (",
|
" return (",
|
||||||
@@ -75,7 +76,36 @@ describe("comments", function() {
|
|||||||
].join("\n"));
|
].join("\n"));
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should handle comment folded into return correctly", function() {
|
it("Should handle trailing return", function() {
|
||||||
|
var result = UglifyJS.minify([
|
||||||
|
"function unequal(x) {",
|
||||||
|
" var y;",
|
||||||
|
" return (",
|
||||||
|
" // Either one",
|
||||||
|
" x < y",
|
||||||
|
" ||",
|
||||||
|
" y < x",
|
||||||
|
" );",
|
||||||
|
"}",
|
||||||
|
].join("\n"), {
|
||||||
|
compress: false,
|
||||||
|
mangle: false,
|
||||||
|
output: {
|
||||||
|
beautify: true,
|
||||||
|
comments: "all",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (result.error) throw result.error;
|
||||||
|
assert.strictEqual(result.code, [
|
||||||
|
"function unequal(x) {",
|
||||||
|
" var y;",
|
||||||
|
" // Either one",
|
||||||
|
" return x < y || y < x;",
|
||||||
|
"}",
|
||||||
|
].join("\n"));
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Should handle comment folded into return", function() {
|
||||||
var result = UglifyJS.minify([
|
var result = UglifyJS.minify([
|
||||||
"function f() {",
|
"function f() {",
|
||||||
" /* boo */ x();",
|
" /* boo */ x();",
|
||||||
@@ -96,6 +126,7 @@ describe("comments", function() {
|
|||||||
"}",
|
"}",
|
||||||
].join("\n"));
|
].join("\n"));
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it("Should not drop comments after first OutputStream", function() {
|
it("Should not drop comments after first OutputStream", function() {
|
||||||
var code = "/* boo */\nx();";
|
var code = "/* boo */\nx();";
|
||||||
|
|||||||
Reference in New Issue
Block a user