{"ScriptPreparationCode":"data = [\u0022test\u0022, \u0022test\u0026test\u0022, \u0022\u0022, \u0022string\u0022, \u0022test\u0026amp;test\u0022, \u0022123456\u0022, \u0022!\\\u0022\u00A7$%\u0026/()=\u0022, \u0022\u003C\u0026\u003E\u0022, \u0022\u003Cscript\u003Ehi\u003C/script\u003E\u0022, \u0022\\\u0022quot\\\u0022\u0022, \u0022\u0026amp;\u0026gt;\u0026lt;\u0026quot;\u0022, \u0022Some random text, some random text\u0022];\r\ndiff = {};","TestCases":[{"Name":"document.createElement (every time)","Code":"let n = 0;\r\nwhile(true) {\r\n n\u002B\u002B;\r\n const input = data[n % (data.length)];\r\n // === start\r\n const p = document.createElement(\u0022p\u0022);\r\n p.textContent = input;\r\n const val = p.innerHTML;\r\n // === end\r\n if (input !== val \u0026\u0026 !diff[input]) {\r\n diff[input] = val;\r\n }\r\n if(n===100000) \r\n break;\r\n}\r\nconsole.log(\u0022diff 0\u0022, diff);","IsDeferred":false},{"Name":"document.createElement (once)","Code":"let n = 0;\r\nconst p = document.createElement(\u0022p\u0022);\r\n\r\nwhile(true) {\r\n n\u002B\u002B;\r\n const input = data[n % (data.length)];\r\n // === start\r\n p.textContent = input;\r\n const val = p.innerHTML;\r\n // === end\r\n if (input !== val \u0026\u0026 !diff[input]) {\r\n diff[input] = val;\r\n }\r\n if(n===100000) \r\n break;\r\n}\r\nconsole.log(\u0022diff 1\u0022, diff);","IsDeferred":false},{"Name":"mask by regex (with map)","Code":"let n = 0;\r\nconst p = document.createElement(\u0022p\u0022);\r\n\r\nconst replace = (value, replace) =\u003E {\r\n let result = value;\r\n replace.forEach(\r\n (replacment, regex) =\u003E (result = result.replace(regex, replacment))\r\n );\r\n return result;\r\n };\r\n\r\nwhile(true) {\r\n n\u002B\u002B;\r\n const input = data[n % (data.length)];\r\n /// start\r\n const replacements = new Map();\r\n replacements.set(/\u0026/gm, \u0022\u0026amp;\u0022); // replace \u0026 with\r\n replacements.set(/\u003E/gm, \u0022\u0026gt;\u0022); // replace \u003E with \u0026gt;\r\n replacements.set(/\u003C/gm, \u0022\u0026lt;\u0022); // replace \u003C with \u0026lt;\r\n replacements.set(/\u0022/gm, \u0022\u0026quot;\u0022); // replace \u0022 with \u0026quot;\r\n let val = replace(input, replacements);\r\n // === end\r\n if (input !== val \u0026\u0026 !diff[input]) {\r\n diff[input] = val;\r\n }\r\n if(n===100000) \r\n break;\r\n}\r\nconsole.log(\u0022diff 2\u0022, diff);","IsDeferred":false},{"Name":"mask by regex (direct)","Code":"let n = 0;\r\nconst p = document.createElement(\u0022p\u0022);\r\n\r\nwhile(true) {\r\n n\u002B\u002B;\r\n const input = data[n % (data.length)];\r\n /// start\r\n const val = input.replace(/\u0026/gm, \u0022\u0026amp;\u0022).replace(/\u003E/gm, \u0022\u0026gt;\u0022).replace(/\u003C/gm, \u0022\u0026lt;\u0022).replace(/\u0022/gm, \u0022\u0026quot;\u0022); \r\n // === end\r\n if (input !== val \u0026\u0026 !diff[input]) {\r\n diff[input] = val;\r\n }\r\n if(n===100000) \r\n break;\r\n}\r\nconsole.log(\u0022diff 3\u0022, diff);","IsDeferred":false}]}