{"ScriptPreparationCode":"var map = new Map();\r\nvar obj = {};\r\n\r\nvar iterations = 1000000;\r\nvar tenthOfIterations = iterations / 10;\r\n\r\nvar strings = [];\r\n\r\nfor (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tstrings.push((Math.random() \u002B 1).toString(36).substring(2));\r\n}\r\n","TestCases":[{"Name":"Object Insertion","Code":"for (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tobj[strings[i]] = strings[i];\r\n}","IsDeferred":false},{"Name":"Map insertion","Code":"for (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tmap.set(strings[i], strings[i]);\r\n}","IsDeferred":false},{"Name":"Object Insertion Overwrites","Code":"for (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tobj[strings[i % 10]] = strings[i];\r\n}","IsDeferred":false},{"Name":"Map insertion overwrites","Code":"for (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tmap.set(strings[i % 10], strings[i]);\r\n}","IsDeferred":false},{"Name":"Object simulated usage","Code":"for (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tobj[strings[i]] = strings[i];\r\n}\r\n\r\nfor (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tobj[strings[i % 10]] = obj[strings[i]];\r\n}\r\n\r\nfor (let i = 0; i \u003C tenthOfIterations; i\u002B\u002B) {\r\n\tdelete obj[strings[i * 10]];\r\n}","IsDeferred":false},{"Name":"Map simulated usage","Code":"for (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tmap.set(strings[i], strings[i]);\r\n}\r\n\r\nfor (let i = 0; i \u003C iterations; i\u002B\u002B) {\r\n\tmap.set(strings[i % 10], map.get(strings[i]));\r\n}\r\n\r\nfor (let i = 0; i \u003C tenthOfIterations; i\u002B\u002B) {\r\n\tmap.delete(strings[i * 10]);\r\n}","IsDeferred":false}]}