{"ScriptPreparationCode":"function func(a, b) { \r\n return 0.5 - Math.random();\r\n} \r\n\r\nvar arr = Array.from({length: 1000}).map((_, i) =\u003E {\r\n return {num: i, str: String(i)};\r\n}).toSorted(func);\r\nvar arrNum = arr.map(v =\u003E {return {[v.num]: v.num}});\r\nvar arrStr = arr.map(v =\u003E {return {[v.str]: v.str}});\r\nvar arrObj = arr.map(v =\u003E{ \r\n const is = v.num % 2 === 0;\r\n const val = is ? v.str : v.num;\r\n return {[val]: val}\r\n})\r\nvar arrSymb = arr.map(Symbol)\r\n\r\n\r\nconst arrMix = arr.toSorted(func);\r\nvar arrRandom = [...arrNum.slice(0, 250), ...arrStr.slice(250, 500), ...arrObj.slice(500, 750), ...arrMix.slice(750, 1000).map(v =\u003E Symbol(v))].toSorted(func)\r\n\r\n\r\nvar number = new WeakSet();\r\nvar string = new WeakSet();\r\nvar obj = new WeakSet();\r\nvar symbol = new WeakSet();\r\nvar mixed = new WeakSet();","TestCases":[{"Name":"WEAKSET string","Code":"arrStr.forEach(v =\u003E string.add(v))\r\narrStr.forEach(v =\u003E string.has(v))\r\narrStr.forEach(v =\u003E string.size)\r\narrStr.forEach(v =\u003E string.delete(v))","IsDeferred":false},{"Name":"WEAKSET number","Code":"arrNum.forEach(v =\u003E number.add(v))\r\narrNum.forEach(v =\u003E number.has(v))\r\narrNum.forEach(v =\u003E number.size)\r\narrNum.forEach(v =\u003E number.delete(v))","IsDeferred":false},{"Name":"WEAKSET obj","Code":"arrObj.forEach(v =\u003E obj.add(v))\r\narrObj.forEach(v =\u003E obj.has(v))\r\narrObj.forEach(v =\u003E obj.size)\r\narrObj.forEach(v =\u003E obj.delete(v))","IsDeferred":false},{"Name":"WEAKSET symbol","Code":"arrSymb.forEach(v =\u003E symbol.add(v))\r\narrSymb.forEach(v =\u003E symbol.has(v))\r\narrSymb.forEach(v =\u003E symbol.size)\r\narrSymb.forEach(v =\u003E symbol.delete(v))","IsDeferred":false},{"Name":"WEAKSET mixed","Code":"arrRandom.forEach(r =\u003E mixed.add(r))\r\narrRandom.forEach(r =\u003E mixed.has(r))\r\narrRandom.forEach(r =\u003E mixed.size)\r\narrRandom.forEach(r =\u003E mixed.delete(r))","IsDeferred":false}]}