}
var reStartDelimiter = {
- 'script': /^\s*<!--.*\n?/,
+ // account for js + html comments (e.g.: //<!--)
+ 'script': /^\s*(?:\/\/)?\s*<!--.*\n?/,
'style': /^\s*<!--\s*/
};
+ var reEndDelimiter = {
+ 'script': /\s*(?:\/\/)?\s*-->\s*$/,
+ 'style': /\s*-->\s*$/
+ };
function removeComments(text, tag) {
- return text.replace(reStartDelimiter[tag], '').replace(/\s*-->\s*$/, '');
+ return text.replace(reStartDelimiter[tag], '').replace(reEndDelimiter[tag], '');
}
function isOptionalTag(tag) {
input = '<script type="text/javascript"> <!--\nalert("-->"); -->\n\n <\/script>';
output = '<script type="text/javascript">alert("-->");<\/script>';
equals(minify(input, { removeCommentsFromCDATA: true }), output);
+
+ input = '<script> // <!-- \n alert(1) // --> <\/script>';
+ output = '<script> alert(1)<\/script>';
+ equals(minify(input, { removeCommentsFromCDATA: true }), output);
});
test('remove comments from styles', function(){