From 11e9bdc42746832cfa1c52ca70b0171b31a422ba Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Fri, 31 Mar 2017 15:26:57 +0800 Subject: [PATCH] fix missing preamble when shebang is absent (#1742) --- lib/output.js | 4 ++-- test/mocha/comment-filter.js | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/output.js b/lib/output.js index c8c8739f..ac9e0654 100644 --- a/lib/output.js +++ b/lib/output.js @@ -510,8 +510,8 @@ function OutputStream(options) { })); } - if (comments.length > 0 && output.pos() == 0) { - if (output.option("shebang") && comments[0].type == "comment5") { + if (output.pos() == 0) { + if (comments.length > 0 && output.option("shebang") && comments[0].type == "comment5") { output.print("#!" + comments.shift().value + "\n"); output.indent(); } diff --git a/test/mocha/comment-filter.js b/test/mocha/comment-filter.js index 9474e732..ec17aa8c 100644 --- a/test/mocha/comment-filter.js +++ b/test/mocha/comment-filter.js @@ -79,5 +79,13 @@ describe("comment filters", function() { output: { preamble: "/* Build */" } }).code; assert.strictEqual(code, "#!/usr/bin/node\n/* Build */\nvar x=10;"); - }) + }); + + it("Should handle preamble without shebang correctly", function() { + var code = UglifyJS.minify("var x = 10;", { + fromString: true, + output: { preamble: "/* Build */" } + }).code; + assert.strictEqual(code, "/* Build */\nvar x=10;"); + }); }); -- 2.34.1