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;"); + }); });