{"ScriptPreparationCode":"class CreationTester {\r\n\tcounterA = 0;\r\n\tcounterB = 0;\r\n\tcallback;\r\n\tconstructor(options = {}) {\r\n\t\tthis.onTodo1 = options.onTodo1;\r\n\t\tthis.onTodo2 = options.onTodo2;\r\n\t};\r\n\tstuffTodo1(thing) {\r\n\t\tthis.counterA\u002B\u002B;\r\n\t\tthing.aap = \u0022noob\u0022;\r\n\t\tthis.onTodo1(thing, () =\u003E this.stuffTodo2(thing));\r\n\t};\r\n\tstuffTodo2(thing) {\r\n\t\tthis.counterB\u002B\u002B;\r\n\t\tthing.y = \u0022mongol\u0022;\r\n\t\tthis.onTodo2(thing, this.callback);\r\n\t};\r\n\tcreateSmallFunctionThatPointsToMultipleProtoMethods(callback) {\r\n\t\tthis.callback = callback;\r\n\t\treturn thing =\u003E this.stuffTodo1(thing);\r\n\t};\r\n\tcreateOneLargerAllInOneFunction(callback) {\r\n\t\treturn thing =\u003E {\r\n\t\t\tthis.counterA\u002B\u002B;\r\n\t\t\tthing.aap = \u0022noob\u0022;\r\n\t\t\tthis.onTodo1(thing, () =\u003E {\r\n\t\t\t\tthis.counterB\u002B\u002B;\r\n\t\t\t\tthing.y = \u0022mongol\u0022;\r\n\t\t\t\tthis.onTodo2(thing, callback);\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n};\r\nvar creationTester = new CreationTester({\r\n\tonTodo1(thing, callback) {\r\n\t\tthing.noob = \u0022aap\u0022;\r\n\t\tcallback();\r\n\t},\r\n\tonTodo2(thing, callback) {\r\n\t\tthing.Y = \u0022MONGOL\u0022;\r\n\t\tcallback(thing);\r\n\t},\r\n});","TestCases":[{"Name":"Create a small function that points to prototype methods","Code":"let pointedCallback = creationTester.createSmallFunctionThatPointsToMultipleProtoMethods(thing =\u003E {\r\n console.log(thing);\r\n});","IsDeferred":false},{"Name":"Create one larger all in one function","Code":"let pointedCallback = creationTester.createOneLargerAllInOneFunction(thing =\u003E {\r\n console.log(thing);\r\n});","IsDeferred":false}]}