var encode = function (str, buffer, encodeNewline) { str = String(str); if (str === null || !str.length) return str; if (!buffer) buffer = []; for (var i = 0, len = str.length; i < len; i += 1) { var char = str.charAt(i); switch (char) { case '<': buffer.push('<'); break; case '>': buffer.push('>'); break; case '&': buffer.push('&'); break; case '"': buffer.push('"'); break; case '\n': if (encodeNewline) { buffer.push("
"); } buffer.push('\n'); break; default: buffer.push(char); } } return buffer.join(''); };