{"ScriptPreparationCode":"var objects = [];\r\nvar symbols = [];\r\nvar symbolObj = {__proto__: null};\r\nvar symbolMap = new Map();\r\nvar symbolSet = new Set();\r\nvar objectMap = new Map();\r\nvar objectSet = new Set();\r\nvar emptyObj = {__proto__: null};\r\nvar emptyMap = new Map();\r\nvar emptySet = new Set();\r\n\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n objects[i] = {i, sym: Symbol(i)};\r\n symbols[i] = objects[i].sym;\r\n symbolObj[symbols[i]] = i;\r\n symbolSet.add(symbols[i]);\r\n symbolMap.set(symbols[i], i);\r\n objectSet.add(objects[i]);\r\n objectMap.set(objects[i], i);\r\n}\r\n\r\nfunction objRead(obj, keys) {\r\n let total = 0;\r\n for (const key of keys) {\r\n total \u002B= obj[key];\r\n }\r\n return total;\r\n}\r\nfunction objWrite(obj, keys) {\r\n for (const key of keys) {\r\n obj[key] = true;\r\n }\r\n}\r\nfunction mapRead(map, keys) {\r\n let total = 0;\r\n for (const key of keys) {\r\n total \u002B= map.get(key);\r\n }\r\n return total;\r\n}\r\nfunction mapWrite(map, keys) {\r\n for (const key of keys) {\r\n map.set(key, true);\r\n }\r\n}\r\nfunction setRead(set, keys) {\r\n let total = 0;\r\n for (const key of keys) {\r\n total \u002B= set.has(key) ? 1 : 0;\r\n }\r\n return total;\r\n}\r\nfunction setWrite(set, keys) {\r\n for (const key of keys) {\r\n set.add(key);\r\n }\r\n}\r\n","TestCases":[{"Name":"Symbol read: Object","Code":"objRead(symbolObj, symbols)","IsDeferred":false},{"Name":"Symbol read: Set","Code":"setRead(symbolSet, symbols)","IsDeferred":false},{"Name":"Symbol read: Map","Code":"mapRead(symbolMap, symbols)","IsDeferred":false},{"Name":"Object read: Set","Code":"setRead(objectSet, objects)","IsDeferred":false},{"Name":"Object read: Map","Code":"mapRead(objectMap, objects)","IsDeferred":false},{"Name":"Symbol write: Object","Code":"objWrite(symbolObj, symbols)","IsDeferred":false},{"Name":"Symbol write: Set","Code":"setWrite(symbolSet, symbols)","IsDeferred":false},{"Name":"Symbol write: Map","Code":"mapWrite(symbolMap, symbols);","IsDeferred":false},{"Name":"Object write: Set","Code":"setWrite(objectSet, objects);","IsDeferred":false},{"Name":"Object write: Map","Code":"mapWrite(objectMap, objects);","IsDeferred":false},{"Name":"Symbol insert: Object","Code":"objWrite(emptyObj, symbols);","IsDeferred":false},{"Name":"Symbol insert: Set","Code":"setWrite(emptySet, symbols);","IsDeferred":false},{"Name":"Symbol insert: Map","Code":"mapWrite(emptyMap, symbols);","IsDeferred":false},{"Name":"Object insert: Set","Code":"setWrite(emptySet, objects);","IsDeferred":false},{"Name":"Object insert: Map","Code":"mapWrite(emptyMap, objects);","IsDeferred":false}]}