{"ScriptPreparationCode":"var o = {}, ar=[];\r\n\r\nfunction set(o, k, v){\r\n o[k] =v;\r\n}\r\nfunction get(o, k){\r\n return o[k];\r\n}\r\n\r\nvar proxyHandler = {\r\n set(o,k,v){\r\n o[k]=v;\r\n return true;\r\n },\r\n get(o,k){return o[k];}\r\n};\r\n\r\nvar op = new Proxy({}, proxyHandler);\r\nvar arp = new Proxy([], proxyHandler);\r\n\r\n\r\nfunction randomInt(min, max){\r\n return Math.floor(Math.random() * (max - min \u002B 1)) \u002B min;\r\n}\r\nfunction randomString(length){\r\n var result = \u0027\u0027;\r\n var characters = \u0027ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\u0027;\r\n var charactersLength = characters.length;\r\n for ( var i = 0; i \u003C length; i\u002B\u002B ) {\r\n result \u002B= characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n}\r\nvar keys = [];\r\nfor(var i=0; i\u003C20; i\u002B\u002B){\r\n keys.push(randomString(randomInt(2, 10)));\r\n}\r\nvar count = 1000000","TestCases":[{"Name":"setting array","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n set(ar, i, keys[i]);\r\n}","IsDeferred":false},{"Name":"setting object","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n set(o, keys[i], i);\r\n}","IsDeferred":false},{"Name":"setting array proxy","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n arp[i] = keys[i];\r\n}","IsDeferred":false},{"Name":"setting object proxy","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n op[keys[i]] = i;\r\n}","IsDeferred":false},{"Name":"getting array","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n get(ar, i);\r\n}","IsDeferred":false},{"Name":"getting object","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n get(ar, keys[i]);\r\n}","IsDeferred":false},{"Name":"getting array proxy","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n arp[i];\r\n}","IsDeferred":false},{"Name":"getting object proxy","Code":"for(var i=0; i\u003Ccount; i\u002B\u002B){\r\n let i = randomInt(0, 20);\r\n op[keys[i]];\r\n}","IsDeferred":false}]}