{"ScriptPreparationCode":"\r\nconst readonly = (prop) =\u003E typeof prop === \u0027function\u0027\r\n ? { configurable: false, enumerable: true, get: prop }\r\n : { configurable: false, enumerable: true, value: prop, writable: false };\r\nconst readonlyExpand = (props) =\u003E Object.entries(props).reduce((prev, [k, v]) =\u003E {\r\n prev[k] = readonly(v);\r\n return prev;\r\n}, {});\r\n\r\nconst a100 = new Array(100).fill(null);\r\n\r\nfunction test1() {\r\n return Object.defineProperties({}, readonlyExpand(a100.reduce((prev, _, i) =\u003E {\r\n prev[\u0060key${i}\u0060] = i;\r\n return prev;\r\n }, {})))\r\n}\r\n\r\nfunction test2() {\r\n return Object.defineProperties({}, readonlyExpand(a100.reduce((prev, _, i) =\u003E {\r\n prev[\u0060key${i}\u0060] = () =\u003E i;\r\n return prev;\r\n }, {})))\r\n}\r\n\r\nfunction test3() {\r\n return a100.reduce((prev, _, i) =\u003E {\r\n prev[\u0060key${i}\u0060] = i;\r\n return prev;\r\n }, {});\r\n}\r\n\r\nclass Test4 {\r\n test() {\r\n a100.forEach((_, i) =\u003E {\r\n this[\u0060key${i}\u0060] = i;\r\n })\r\n }\r\n}\r\n\r\nfunction test4() {\r\n const t = new Test4();\r\n t.test();\r\n return t;\r\n}\r\n\r\nfunction test5() {\r\n const o = {};\r\n a100.forEach((_, i) =\u003E {\r\n Object.defineProperty(o, \u0060key${i}\u0060, readonly(i))\r\n })\r\n return o;\r\n}\r\n\r\nfunction test6() {\r\n const o = {};\r\n a100.forEach((_, i) =\u003E {\r\n Object.defineProperty(o, \u0060key${i}\u0060, readonly(i))\r\n })\r\n return o;\r\n}\r\n\r\nfunction test7() {\r\n const p = a100.reduce((prev, _, i) =\u003E {\r\n prev[\u0060key${i}\u0060] = readonly(i);\r\n return prev;\r\n }, {});\r\n return Object.defineProperties({}, p);\r\n}\r\n\r\n","TestCases":[{"Name":"test1","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test1();\r\n}","IsDeferred":false},{"Name":"test2","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test2();\r\n}","IsDeferred":false},{"Name":"test3","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test3();\r\n}","IsDeferred":false},{"Name":"test4","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test4();\r\n}","IsDeferred":false},{"Name":"test5","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test5();\r\n}","IsDeferred":false},{"Name":"test6","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test6();\r\n}","IsDeferred":false},{"Name":"test7","Code":"for (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n test7();\r\n}","IsDeferred":false}]}