{"ScriptPreparationCode":null,"TestCases":[{"Name":"bind","Code":"class Test {\r\n constructor() {\r\n this.counter = 0;\r\n }\r\n \r\n fn1() {\r\n return this.counter \u002B= 1; \r\n }\r\n \r\n fn2() {\r\n return this.counter \u002B= 2; \r\n }\r\n \r\n fn3() {\r\n return this.counter \u002B= 3; \r\n }\r\n \r\n fn4() {\r\n return this.counter \u002B= 4; \r\n }\r\n}\r\n\r\nfunction createSomething() {\r\n const instance = new Test();\r\n \r\n return [instance.fn1.bind(instance), instance.fn2.bind(instance), instance.fn3.bind(instance), instance.fn4.bind(instance)];\r\n}\r\n\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n let [a, b, c, d] = createSomething();\r\n\r\n for (let j = 0; j \u003C 100; j\u002B\u002B) {\r\n a();\r\n b();\r\n c();\r\n d();\r\n }\r\n}","IsDeferred":false},{"Name":"closure","Code":"class Test {\r\n constructor() {\r\n this.counter = 0;\r\n }\r\n \r\n fn1() {\r\n return this.counter \u002B= 1; \r\n }\r\n \r\n fn2() {\r\n return this.counter \u002B= 2; \r\n }\r\n \r\n fn3() {\r\n return this.counter \u002B= 3; \r\n }\r\n \r\n fn4() {\r\n return this.counter \u002B= 4; \r\n }\r\n}\r\n\r\nfunction createSomething() {\r\n const instance = new Test();\r\n \r\n return [() =\u003E instance.fn1(), () =\u003E instance.fn2(), () =\u003E instance.fn3(), () =\u003E instance.fn4()];\r\n}\r\n\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n let [a, b, c, d] = createSomething();\r\n for (let j = 0; j \u003C 100; j\u002B\u002B) {\r\n a();\r\n b();\r\n c();\r\n d();\r\n }\r\n}","IsDeferred":false}]}