{"ScriptPreparationCode":"function esc(a, b, i) {\r\n let { 0: regex, 1: rep } = specialChars[i]\r\n return\u0060${a.replace(regex, rep)}${typeof b === \u0027string\u0027 ? b.replace(regex, rep) : \u0027\u0027}\u0060\r\n}\r\nfunction escape1(str) {\r\n return specialChars.reduce(esc, str)\r\n}\r\nconst specialChars = [[/\u003E/g, \u0027\u0026gt;\u0027], [/\u003C/g, \u0027\u0026lt;\u0027], [/\u0026(?![#\\w]\u002B;)/g, \u0027\u0026amp;\u0027], [/\u0027/g, \u0027\u0026apos;\u0027], [/\u0022/g, \u0027\u0026quot;\u0027]]\r\nlet n = document.createElement(\u0027div\u0027)\r\nfunction escape2(str) {\r\n n.textContent = str\r\n return n.innerHTML\r\n} ","TestCases":[{"Name":"escape with regex","Code":"for(let i = 300; i--;) escape1(\u0060\u003Cp\u003E\u0026\u0022\u0027hello\u003C/p\u003E\u0060.repeat(600))","IsDeferred":false},{"Name":"built in escaping","Code":"for(let i = 300; i--;) escape2(\u0060\u003Cp\u003E\u0026\u0022\u0027hello\u003C/p\u003E\u0060.repeat(600))","IsDeferred":false}]}