{"ScriptPreparationCode":"var strings = [];\r\nvar symbols = [];\r\nvar stringMap = {__proto__: null};\r\nvar symbolMap = {__proto__: null};\r\nvar emptyMap = {__proto__: null};\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n strings[i] = \u0060foobar${i}\u0060;\r\n symbols[i] = Symbol(\u0060foobar${i}\u0060);\r\n stringMap[strings[i]] = i;\r\n symbolMap[symbols[i]] = i;\r\n}\r\nvar stringProtoMap = {__proto__: stringMap};\r\nvar symbolProtoMap = {__proto__: symbolMap};\r\nfunction mapRead(map, keys) {\r\n let total = 0;\r\n for (const key of keys) {\r\n total \u002B= map[key];\r\n }\r\n return total;\r\n}\r\nfunction mapWrite(map, keys) {\r\n for (const key of keys) {\r\n map[key] = true;\r\n }\r\n}","TestCases":[{"Name":"Symbol read","Code":"mapRead(symbolMap, symbols)","IsDeferred":false},{"Name":"Symbol read prototype","Code":"mapRead(symbolProtoMap, symbols);","IsDeferred":false},{"Name":"Symbol write","Code":"mapWrite(emptyMap, symbols);","IsDeferred":false},{"Name":"Symbol overwrite","Code":"mapWrite(symbolMap, symbols);","IsDeferred":false},{"Name":"Symbol overwrite prototype","Code":"mapWrite(symbolProtoMap, symbols);","IsDeferred":false},{"Name":"String read","Code":"mapRead(stringMap, strings);","IsDeferred":false},{"Name":"String read prototype","Code":"mapRead(stringProtoMap, strings);","IsDeferred":false},{"Name":"String write","Code":"mapWrite(stringMap, strings);","IsDeferred":false},{"Name":"String overwrite","Code":"mapWrite(stringMap, strings);","IsDeferred":false},{"Name":"String overwrite prototype","Code":"mapWrite(stringProtoMap, strings);","IsDeferred":false}]}