| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | // Declare internalsvar internals = {};exports.escapeJavaScript = function (input) {    if (!input) {        return '';    }    var escaped = '';    for (var i = 0, il = input.length; i < il; ++i) {        var charCode = input.charCodeAt(i);        if (internals.isSafe(charCode)) {            escaped += input[i];        }        else {            escaped += internals.escapeJavaScriptChar(charCode);        }    }    return escaped;};exports.escapeHtml = function (input) {    if (!input) {        return '';    }    var escaped = '';    for (var i = 0, il = input.length; i < il; ++i) {        var charCode = input.charCodeAt(i);        if (internals.isSafe(charCode)) {            escaped += input[i];        }        else {            escaped += internals.escapeHtmlChar(charCode);        }    }    return escaped;};internals.escapeJavaScriptChar = function (charCode) {    if (charCode >= 256) {        return '\\u' + internals.padLeft('' + charCode, 4);    }    var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');    return '\\x' + internals.padLeft(hexValue, 2);};internals.escapeHtmlChar = function (charCode) {    var namedEscape = internals.namedHtml[charCode];    if (typeof namedEscape !== 'undefined') {        return namedEscape;    }    if (charCode >= 256) {        return '&#' + charCode + ';';    }    var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');    return '&#x' + internals.padLeft(hexValue, 2) + ';';};internals.padLeft = function (str, len) {    while (str.length < len) {        str = '0' + str;    }    return str;};internals.isSafe = function (charCode) {    return (typeof internals.safeCharCodes[charCode] !== 'undefined');};internals.namedHtml = {    '38': '&',    '60': '<',    '62': '>',    '34': '"',    '160': ' ',    '162': '¢',    '163': '£',    '164': '¤',    '169': '©',    '174': '®'};internals.safeCharCodes = (function () {    var safe = {};    for (var i = 32; i < 123; ++i) {        if ((i >= 97) ||                    // a-z            (i >= 65 && i <= 90) ||         // A-Z            (i >= 48 && i <= 57) ||         // 0-9            i === 32 ||                     // space            i === 46 ||                     // .            i === 44 ||                     // ,            i === 45 ||                     // -            i === 58 ||                     // :            i === 95) {                     // _            safe[i] = null;        }    }    return safe;}());
 |