|
|
@@ -125,45 +125,31 @@ this.cssWhat = this.cssWhat || (() => {
|
|
|
};
|
|
|
|
|
|
// cssEscape taken from https://mathiasbynens.be/notes/css-escapes
|
|
|
- function cssEscape(string, escapeNonASCII) {
|
|
|
+ function cssEscape(string) {
|
|
|
const firstChar = string.charAt(0);
|
|
|
const length = string.length;
|
|
|
- let value, character, charCode, output = "", counter = 0, surrogatePairCount = 0, extraCharCode; // low surrogate
|
|
|
+ let output = "", counter = 0;
|
|
|
while (counter < length) {
|
|
|
- character = string.charAt(counter++);
|
|
|
- charCode = character.charCodeAt();
|
|
|
- if (escapeNonASCII && (charCode < 0x20 || charCode > 0x7E)) {
|
|
|
- if ((charCode & 0xF800) == 0xD800) {
|
|
|
- surrogatePairCount++;
|
|
|
- extraCharCode = string.charCodeAt(counter++);
|
|
|
- if ((charCode & 0xFC00) != 0xD800 || (extraCharCode & 0xFC00) != 0xDC00) {
|
|
|
- throw Error("UCS-2(decode): illegal sequence");
|
|
|
- }
|
|
|
- charCode = ((charCode & 0x3FF) << 10) + (extraCharCode & 0x3FF) + 0x10000;
|
|
|
- }
|
|
|
- value = "\\" + charCode.toString(16).toUpperCase() + " ";
|
|
|
+ let value;
|
|
|
+ const character = string.charAt(counter++);
|
|
|
+ if (character == "\t" || character == "\n" || character == "\v" || character == "\f" || character == ":") {
|
|
|
+ value = "\\" + character.charCodeAt().toString(16).toUpperCase() + " ";
|
|
|
+ } else if (character == "[" || character == " " || character == "!" || character == "\"" || character == "#" || character == "$" || character == "%" || character == "&" || character == "'" || character == "(" || character == ")" || character == "*" || character == "+" || character == "," || character == "." || character == "/" || character == ";" || character == "<" || character == "=" || character == ">" || character == "?" || character == "@" || character == "[" || character == "\\" || character == "]" || character == "^" || character == "`" || character == "{," || character == "|" || character == "}" || character == "~" || character == "]") {
|
|
|
+ value = "\\" + character;
|
|
|
} else {
|
|
|
- if (character == "\t" || character == "\n" || character == "\v" || character == "\f" || character == ":") {
|
|
|
- value = "\\" + charCode.toString(16).toUpperCase() + " ";
|
|
|
- } else if (character == "[" || character == " " || character == "!" || character == "\"" || character == "#" || character == "$" || character == "%" || character == "&" || character == "'" || character == "(" || character == ")" || character == "*" || character == "+" || character == "," || character == "." || character == "/" || character == ";" || character == "<" || character == "=" || character == ">" || character == "?" || character == "@" || character == "[" || character == "\\" || character == "]" || character == "^" || character == "`" || character == "{," || character == "|" || character == "}" || character == "~" || character == "]") {
|
|
|
- value = "\\" + character;
|
|
|
- } else {
|
|
|
- value = character;
|
|
|
- }
|
|
|
+ value = character;
|
|
|
}
|
|
|
output += value;
|
|
|
}
|
|
|
if (output.startsWith("_")) {
|
|
|
output = "\\_" + output.slice(1);
|
|
|
- }
|
|
|
- if (output.match(REGEXP_STARTS_DASH_DECIMAL)) {
|
|
|
+ } else if (output.match(REGEXP_STARTS_DASH_DECIMAL)) {
|
|
|
output = "\\-" + output.slice(1);
|
|
|
}
|
|
|
if (firstChar == "0" || firstChar == "1" || firstChar == "2" || firstChar == "3" || firstChar == "4" || firstChar == "5" || firstChar == "6" || firstChar == "7" || firstChar == "8" || firstChar == "9") {
|
|
|
output = "\\3" + firstChar + " " + output.slice(1);
|
|
|
}
|
|
|
return {
|
|
|
- "surrogatePairCount": surrogatePairCount,
|
|
|
"output": output
|
|
|
};
|
|
|
}
|