{"ScriptPreparationCode":"class Foo1 {\r\n property = 5;\r\n method() {\r\n this.property \u002B= 1;\r\n }\r\n}\r\n\r\nfunction Bar1() {\r\n return {\r\n property: 5,\r\n method() {\r\n this.property \u002B= 1;\r\n }\r\n };\r\n}\r\n\r\nfunction Bar2() {\r\n let property = 5;\r\n return {\r\n method: () =\u003E {\r\n property \u002B= 1;\r\n }\r\n };\r\n}\r\n\r\nvar foo1 = new Foo1();\r\nvar foo1Apply = foo1.method;\r\nvar foo1Bind = foo1.method.bind(foo1);\r\n\r\nvar bar1 = Bar1();\r\nvar bar1Apply = bar1.method;\r\nvar bar1Bind = bar1.method.bind(bar1);\r\n\r\nvar bar2 = Bar2();\r\nvar bar2Variable = bar2.method;","TestCases":[{"Name":"Class: direct","Code":"foo1.method();","IsDeferred":false},{"Name":"Class: apply","Code":"foo1Apply.apply(foo1);","IsDeferred":false},{"Name":"Class: bind","Code":"foo1Bind();","IsDeferred":false},{"Name":"Object literal: direct","Code":"bar1.method();","IsDeferred":false},{"Name":"Object literal: apply","Code":"bar1Apply.apply(bar1);","IsDeferred":false},{"Name":"Object literal: bind","Code":"bar1Bind();","IsDeferred":false},{"Name":"Object with context: direct","Code":"bar2.method();","IsDeferred":false},{"Name":"Object with context: variable","Code":"bar2Variable();","IsDeferred":false}]}