Output -- > instead of --> in expressions. Escape <!-- and --> within string literals.
This commit is contained in:
@@ -127,6 +127,8 @@ function OutputStream(options) {
|
||||
var ret = make_string(str, quote);
|
||||
if (options.inline_script)
|
||||
ret = ret.replace(/<\x2fscript([>\/\t\n\f\r ])/gi, "<\\/script$1");
|
||||
ret = ret.replace(/\x3c!--/g, "\\x3c!--");
|
||||
ret = ret.replace(/--\x3e/g, "--\\x3e");
|
||||
return ret;
|
||||
};
|
||||
|
||||
@@ -1046,7 +1048,15 @@ function OutputStream(options) {
|
||||
});
|
||||
DEFPRINT(AST_Binary, function(self, output){
|
||||
self.left.print(output);
|
||||
if (self.operator == ">"
|
||||
&& self.left instanceof AST_UnaryPostfix
|
||||
&& self.left.operator == "--") {
|
||||
// space is mandatory to avoid outputting -->
|
||||
output.print(" ");
|
||||
} else {
|
||||
// the space is optional depending on "beautify"
|
||||
output.space();
|
||||
}
|
||||
output.print(self.operator);
|
||||
if (self.operator == "<"
|
||||
&& self.right instanceof AST_UnaryPrefix
|
||||
@@ -1054,7 +1064,6 @@ function OutputStream(options) {
|
||||
&& self.right.expression instanceof AST_UnaryPrefix
|
||||
&& self.right.expression.operator == "--") {
|
||||
// space is mandatory to avoid outputting <!--
|
||||
// http://javascript.spec.whatwg.org/#comment-syntax
|
||||
output.print(" ");
|
||||
} else {
|
||||
// the space is optional depending on "beautify"
|
||||
|
||||
15
test/compress/html_comments.js
Normal file
15
test/compress/html_comments.js
Normal file
@@ -0,0 +1,15 @@
|
||||
html_comment_in_expression: {
|
||||
input: {
|
||||
function f(a, b, x, y) { return a < !--b && x-- > y; }
|
||||
}
|
||||
expect_exact: "function f(a,b,x,y){return a< !--b&&x-- >y}";
|
||||
}
|
||||
|
||||
html_comment_in_string_literal: {
|
||||
input: {
|
||||
function f() { return "<!--HTML-->comment in<!--string literal-->"; }
|
||||
}
|
||||
expect_exact: 'function f(){return"\\x3c!--HTML--\\x3ecomment in\\x3c!--string literal--\\x3e"}';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user