{"ScriptPreparationCode":null,"TestCases":[{"Name":"add2","Code":"function add2(x){\r\n return (x \u002B 1) \u002B 1;\r\n}\r\nlet res = 0;\r\nfor(let i = 0; i \u003C 10000; i\u002B\u002B){\r\n res = add2(res)\r\n}","IsDeferred":false},{"Name":"add1_twice","Code":"\r\n\r\nfunction add1(x){\r\n return x \u002B 1;\r\n}\r\nfunction add1_twice(x){\r\n return add1(add1(x));\r\n}\r\n\r\nlet res = 0;\r\nfor(let i = 0; i \u003C 10000; i\u002B\u002B){\r\n res = add1_twice(res)\r\n}","IsDeferred":false},{"Name":"add1_twice_2","Code":"\r\nfunction add1(x){\r\n return x \u002B 1;\r\n}\r\n\r\nfunction twice(fn){\r\n return function(x){ return fn(fn(x)); };\r\n}\r\n\r\nconst add1_twice_2 = twice(add1);\r\n\r\nlet res = 0;\r\nfor(let i = 0; i \u003C 10000; i\u002B\u002B){\r\n res = add1_twice_2(res)\r\n}","IsDeferred":false},{"Name":"add2_arrow","Code":"const add2 = (x) =\u003E (x \u002B 1) \u002B 1;\r\nlet res = 0;\r\nfor(let i = 0; i \u003C 10000; i\u002B\u002B){\r\n res = add2(res)\r\n}","IsDeferred":false},{"Name":"add1_twice_arrow","Code":"\r\nconst add1 = (x) =\u003E x \u002B 1;\r\nconst add1_twice = (x) =\u003E add1(add1(x));\r\n\r\nlet res = 0;\r\nfor(let i = 0; i \u003C 10000; i\u002B\u002B){\r\n res = add1_twice(res)\r\n}","IsDeferred":false},{"Name":"add1_twice_2_arrow","Code":"const add1 = (x) =\u003E x \u002B 1;\r\nconst twice = (f) =\u003E (x) =\u003E f(f(x));\r\nconst add1_twice = twice(add1);\r\n\r\nlet res = 0;\r\nfor(let i = 0; i \u003C 10000; i\u002B\u002B){\r\n res = add1_twice(res)\r\n}","IsDeferred":false}]}