{"ScriptPreparationCode":"function shuffle(array) {\r\n var i = array.length,\r\n j = 0,\r\n temp;\r\n while (i--) {\r\n j = Math.floor(Math.random() * (i \u002B 1));\r\n temp = array[i];\r\n array[i] = array[j];\r\n array[j] = temp;\r\n }\r\n return array;\r\n}\r\n\r\nvar words = [\r\n \u0022r\u00E9sum\u00E9s\u0022, \u0022clich\u00E9ds\u0022, \u0022na\u00EFvet\u00E9s\u0022, \u0022fa\u00E7ad\u00E9s\u0022, \u0022fianc\u00E9es\u0022, \r\n \u0022touch\u00E9s\u0022, \u0022coup\u00E9s\u0022, \u0022blas\u00E9ds\u0022, \u0022matin\u00E9es\u0022, \u0022expos\u00E9s\u0022, \r\n \u0022d\u00E9tentes\u0022, \u0022cr\u00E8mes\u0022, \u0022jalape\u00F1os\u0022, \u0022pi\u00F1atas\u0022, \u0022se\u00F1oritas\u0022, \r\n \u0022ni\u00E7oises\u0022, \u0022gar\u00E7ons\u0022, \u0022d\u00E9j\u00E0vus\u0022, \u0022r\u00F4les\u0022, \u0022t\u00EAtes\u0022, \r\n \u0022souffl\u00E9s\u0022, \u0022\u00E0propos\u0022, \u0022vis-\u00E0-vis\u0022, \u0022papiers\u0022, \u0022cr\u00EApes\u0022, \r\n \u0022prot\u00E9g\u00E9s\u0022, \u0022\u00E9litistes\u0022, \u0022d\u00E9cor\u00E9s\u0022, \u0022entr\u00E9es\u0022, \u0022soup\u00E7ons\u0022, \r\n \u0022appliqu\u00E9s\u0022, \u0022m\u00EAl\u00E9es\u0022, \u0022saut\u00E9s\u0022, \u0022attach\u00E9s\u0022, \u0022caf\u00E9tiers\u0022\r\n];\r\nvar words1 = [];\r\nvar n = [];\r\n\r\n// Repeat the words array enough times to exceed 10,000 words\r\nwhile (words.length \u003C 10000) {\r\n words.push(...words);\r\n}\r\n\r\nfor (i = 0; i \u003C words.length; i\u002B\u002B) n.push(i);\r\nvar ranNums = shuffle(n);\r\nfor (i = 0; i \u003C words.length; i\u002B\u002B) words1.push(words[ranNums[i]]);\r\nconsole.log(\u0027ORIGINAL\u0027, words1);","TestCases":[{"Name":"localeCompare base","Code":"words1.sort((a,b) =\u003E a.localeCompare(b));","IsDeferred":false},{"Name":"localeCompare sensitive","Code":"words1.sort((a,b) =\u003E a.localeCompare(b, undefined, { sensitivity: \u0027accent\u0027 }));","IsDeferred":false},{"Name":"Intl.Collator base","Code":"const collator = new Intl.Collator(\u0027en\u0027, {\r\n numeric: true,\r\n sensitivity: \u0027base\u0027\r\n});\r\n\r\nwords1.sort((a, b) =\u003E collator.compare(a, b));","IsDeferred":false},{"Name":"Intl.Collator sensitive","Code":"const collator = new Intl.Collator(\u0027en\u0027, {\r\n numeric: true,\r\n sensitivity: \u0027accent\u0027\r\n});\r\n\r\nwords1.sort((a, b) =\u003E collator.compare(a, b));","IsDeferred":false},{"Name":"sort comparator with casing","Code":"words1.sort((a,b) =\u003E {\r\n if (a.toLowerCase() \u003C b.toLowerCase()) {\r\n return -1;\r\n }\r\n if (a.toLowerCase() \u003E b.toLowerCase()) {\r\n return 1;\r\n }\r\n return 0;\r\n});","IsDeferred":false},{"Name":"sort comparator with custom heuristic","Code":"words1.sort(function (a, b) {\r\n return (a \u003C b ? -1 : (a \u003E b ? 1 : 0));\r\n});","IsDeferred":false},{"Name":"sort comparator","Code":"words1.sort();","IsDeferred":false}]}