Improve multi-line comment parsing

* Make sure comments are skipped correctly with surrogates
* Fix regression in multiline comments with nlb
This commit is contained in:
Anthony Van de Gejuchte
2016-07-04 14:30:27 +02:00
parent 0db7caf13b
commit ff7f6139ba
3 changed files with 29 additions and 3 deletions

View File

@@ -69,3 +69,12 @@ html_comment_in_string_literal: {
}
expect_exact: 'function f(){return"\\x3c!--HTML--\\x3ecomment in\\x3c!--string literal--\\x3e"}';
}
html_comment_after_multiline_comment: {
input: {
var foo; /*
*/--> var bar;
var foobar;
}
expect_exact: "var foo;var foobar;"
}

View File

@@ -31,7 +31,8 @@ describe("Comment", function() {
"/*Some comment 2\r\n\r\n\r\n*/\r\n>\n\n\n\n\n\n",
"/*Some comment 3\r\r\r*/\r>\n\n\n\n\n\n",
"/*Some comment 4\u2028\u2028\u2028*/\u2028>\n\n\n\n\n\n",
"/*Some comment 5\u2029\u2029\u2029*/\u2029>\n\n\n\n\n\n"
"/*Some comment 5\u2029\u2029\u2029*/\u2029>\n\n\n\n\n\n",
"/*Some comment 6\udbff\udfff\udbff\udfff\n\n\n*/\n>\n\n\n\n\n"
];
var fail = function(e) {
@@ -43,7 +44,7 @@ describe("Comment", function() {
for (var i = 0; i < tests.length; i++) {
assert.throws(function() {
uglify.parse(tests[i], {fromString: true})
uglify.parse(tests[i], {fromString: true});
}, fail, tests[i]);
}
});