{"ScriptPreparationCode":"class Point {\r\n constructor(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n this.health = 100;\r\n }\r\n\r\n tick() {\r\n this.x \u002B= 2;\r\n this.y \u002B= 2;\r\n this.health -= 1;\r\n }\r\n}\r\n\r\nvar pointClasses = [];\r\nvar maxPoints = 1000000;\r\n\r\nclass PointB {\r\npointObjectsA = new Int32Array( maxPoints );\r\npointObjectsB = new Int32Array( maxPoints );\r\npointObjectsC = new Int32Array( maxPoints );\r\n}\r\nvar test = new PointB( );\r\n\r\nfor (let i = 0; i \u003C maxPoints; i\u002B\u002B) {\r\n pointClasses.push(new Point(0, 0));\r\n test.pointObjectsA[ i ] = 0;\r\n test.pointObjectsB[ i ] = 0;\r\n test.pointObjectsC[ i ] = 100;\r\n}","TestCases":[{"Name":"OO-style","Code":"let i;\r\nfor ( i = 0; i \u003C maxPoints; i\u002B\u002B )\r\n pointClasses[ i ].tick();","IsDeferred":false},{"Name":"ECS-style","Code":"let i;\r\nfor ( i = 0; i \u003C maxPoints; i\u002B\u002B ) {\r\n test.pointObjectsA[ i ] \u002B= 2;\r\n}\r\nfor ( i = 0; i \u003C maxPoints; i\u002B\u002B ) {\r\n test.pointObjectsB[ i ] \u002B= 2;\r\n}\r\nfor ( i = 0; i \u003C maxPoints; i\u002B\u002B ) {\r\n test.pointObjectsC[ i ] = 100;\r\n}","IsDeferred":false}]}