{"ScriptPreparationCode":"var randomArray = [];\r\nfor (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n randomArray[i] = i*i;\r\n}\r\n\r\nvar set1 = new Set(randomArray);\r\nvar set2 = new Set(randomArray);\r\nset2[Symbol.iterator] = set2[Symbol.iterator].bind(set2);","TestCases":[{"Name":"native set","Code":"for (let item of set1) {\r\n if (typeof item !== \u0027number\u0027) {\r\n throw new Error(\u0027wtf\u0027);\r\n }\r\n}","IsDeferred":false},{"Name":"set with [Symbol.iterator] modified to a bound function","Code":"for (let item of set2) {\r\n if (typeof item !== \u0027number\u0027) {\r\n throw new Error(\u0027wtf\u0027);\r\n }\r\n}","IsDeferred":false}]}