{"ScriptPreparationCode":"var string = document.documentElement.outerHTML.repeat(100);","TestCases":[{"Name":"Array.from, reverse, join","Code":"Array.from(string).reverse().join(\u0022\u0022);","IsDeferred":false},{"Name":"Iterate, concat","Code":"var newString = \u0022\u0022;\r\nfor (let i = string.length - 1; i--;) {\r\n newString \u002B= string[i];\r\n}","IsDeferred":false},{"Name":"Iterate, push, join","Code":"var newChars = [];\r\nfor (let i = string.length - 1; i--;) {\r\n newChars.push(string[i]);\r\n}\r\nnewChars.join(\u0022\u0022)","IsDeferred":false},{"Name":"iterate concat to first (charAt)","Code":" let i = string.length - 1;\r\n let result = string.charAt(i);\r\n for (;i--;) {\r\n result \u002B= string.charAt(i);\r\n }","IsDeferred":false},{"Name":"iterate concat to first","Code":" let i = string.length - 1;\r\n let result = string[i];\r\n for (;i--;) {\r\n result \u002B= string[i];\r\n }","IsDeferred":false},{"Name":"split, iterate, concat to first","Code":" const parts = string.split(\u0022\u0022);\r\n let i = parts.length - 1;\r\n let result = parts[i];\r\n for (;i--;) {\r\n result \u002B= parts[i];\r\n }\r\n ","IsDeferred":false},{"Name":"split, reverse, join","Code":"string.split(\u0022\u0022).reverse().join(\u0022\u0022);","IsDeferred":false}]}