{"ScriptPreparationCode":null,"TestCases":[{"Name":"From preact sources","Code":"const strings = [\r\n \u0027dsafsdafasdf\u0027,\r\n \u0027\u003Easdf\u003Cspan\u003Esdfsdf\u0027,\r\n \u0027sdfdsf\u0026sdf\u0022sdfadsfs\\\u0027sadf\\nsadfasdf\u0027,\r\n \u0027\u0027,\r\n \u0027123#\u003C!-- sdfsdf --\u003E\u0027,\r\n]\r\n\r\n\r\nconst ENCODED_ENTITIES = /[\u0022\u0026\u003C]/\r\n\r\nfunction encodeEntities(str) {\r\n // Skip all work for strings with no entities needing encoding:\r\n if (str.length === 0 || ENCODED_ENTITIES.test(str) === false) return str\r\n\r\n let last = 0,\r\n i = 0,\r\n out = \u0027\u0027,\r\n ch = \u0027\u0027\r\n\r\n // Seek forward in str until the next entity char:\r\n for (; i \u003C str.length; i\u002B\u002B) {\r\n switch (str.charCodeAt(i)) {\r\n case 34:\r\n ch = \u0027\u0026quot;\u0027\r\n break\r\n case 38:\r\n ch = \u0027\u0026amp;\u0027\r\n break\r\n case 60:\r\n ch = \u0027\u0026lt;\u0027\r\n break\r\n default:\r\n continue\r\n }\r\n // Append skipped/buffered characters and the encoded entity:\r\n if (i !== last) out = out \u002B str.slice(last, i)\r\n out = out \u002B ch\r\n // Start the next seek/buffer after the entity\u0027s offset:\r\n last = i \u002B 1\r\n }\r\n if (i !== last) out = out \u002B str.slice(last, i)\r\n return out\r\n}\r\n\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n strings.map(encodeEntities)\r\n}","IsDeferred":false},{"Name":"Simple solution","Code":"const strings = [\r\n \u0027dsafsdafasdf\u0027,\r\n \u0027\u003Easdf\u003Cspan\u003Esdfsdf\u0027,\r\n \u0027sdfdsf\u0026sdf\u0022sdfadsfs\\\u0027sadf\\nsadfasdf\u0027,\r\n \u0027\u0027,\r\n \u0027123#\u003C!-- sdfsdf --\u003E\u0027,\r\n]\r\n\r\nconst sanitizeMap = {\r\n \u0027\u003C\u0027: \u0027\u0026lt;\u0027,\r\n \u0027\u003E\u0027: \u0027\u0026gt;\u0027,\r\n \u0027\u0022\u0027: \u0027\u0026quot;\u0027,\r\n}\r\n\r\nconst sanitize = value =\u003E {\r\n if (value === undefined || value == null) {\r\n return null\r\n }\r\n return String(value).replace(/[\u003C\u003E\u0022]/g, char =\u003E sanitizeMap[char])\r\n}\r\n\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n strings.map(sanitize)\r\n}","IsDeferred":false},{"Name":"ChatGPT solution","Code":"const strings = [\r\n \u0027dsafsdafasdf\u0027,\r\n \u0027\u003Easdf\u003Cspan\u003Esdfsdf\u0027,\r\n \u0027sdfdsf\u0026sdf\u0022sdfadsfs\\\u0027sadf\\nsadfasdf\u0027,\r\n \u0027\u0027,\r\n \u0027123#\u003C!-- sdfsdf --\u003E\u0027,\r\n]\r\n\r\nfunction sanitizeChatGPT(value) {\r\n if (!value) return \u0027\u0027\r\n return value\r\n .replace(/\u0026/g, \u0027\u0026amp;\u0027)\r\n .replace(/\u003C/g, \u0027\u0026lt;\u0027)\r\n .replace(/\u003E/g, \u0027\u0026gt;\u0027)\r\n .replace(/\u0022/g, \u0027\u0026quot;\u0027)\r\n .replace(/\u0027/g, \u0027\u0026#39;\u0027)\r\n}\r\n\r\n\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n strings.map(sanitizeChatGPT)\r\n}\r\n","IsDeferred":false}]}