handle comments around parentheses

fixes #2629
This commit is contained in:
alexlamsl 2017-12-21 22:20:27 +08:00
parent 054330df3f
commit dd36b1965a
3 changed files with 33 additions and 1 deletions

View File

@ -1276,9 +1276,16 @@ function parse($TEXT, options) {
case "(":
next();
var ex = expression(true);
[].push.apply(start.comments_before, ex.start.comments_before);
ex.start.comments_before = start.comments_before;
start.comments_after = ex.start.comments_after;
ex.start = start;
ex.end = S.token;
expect(")");
var end = prev();
end.comments_before = ex.end.comments_before;
[].push.apply(ex.end.comments_after, end.comments_after);
end.comments_after = ex.end.comments_after;
ex.end = end;
return subscripts(ex, allow_calls);
case "[":
return subscripts(array_(), allow_calls);

View File

@ -293,3 +293,16 @@ unary: {
bar();
}
}
issue_2629: {
options = {
side_effects: true,
}
input: {
/*@__PURE__*/ f1();
(/*@__PURE__*/ f2)();
/*@__PURE__*/ (f3());
(/*@__PURE__*/ f4());
}
expect: {}
}

View File

@ -207,4 +207,16 @@ describe("Comment", function() {
if (result.error) throw result.error;
assert.strictEqual(result.code, code);
});
it("Should preserve comments around IIFE", function() {
var result = uglify.minify("/*a*/(/*b*/function(){/*c*/}/*d*/)/*e*/();", {
compress: false,
mangle: false,
output: {
comments: "all",
},
});
if (result.error) throw result.error;
assert.strictEqual(result.code, "/*a*/ /*b*/(function(){/*c*/}/*d*/ /*e*/)();");
});
});