{"ScriptPreparationCode":"let tmp = 0\r\nclass A {\r\n data = 0\r\n arrow = () =\u003E {\r\n this.data = this.data \u002B 1\r\n return this\r\n }\r\n binded = (function() {\r\n this.data = this.data \u002B 1\r\n return this\r\n }).bind(this)\r\n \r\n assigned = (() =\u003E {\r\n const self = this\r\n\t\r\n return function() {\r\n self.data = self.data \u002B 1\r\n return self\r\n }\r\n })()\r\n assignedArrow = (() =\u003E {\r\n return () =\u003E {\r\n this.data = this.data \u002B 1\r\n return this\r\n }\r\n })()\r\n simple() {\r\n this.data = this.data \u002B 1\r\n return this\r\n }\r\n arrowGlobalCashed = () =\u003E {\r\n tmp = tmp \u002B 1\r\n return this\r\n }\r\n assignedArrowCashed = (() =\u003E {\r\n let tmp = 0\r\n return () =\u003E {\r\n this.data = this.data \u002B 1\r\n return this\r\n }\r\n })()\r\n assignedSimpleCashed = (() =\u003E {\r\n let tmp = 0\r\n const self = this\r\n return function() {\r\n tmp = tmp \u002B 1\r\n return self\r\n }\r\n })()\r\n}\r\n\r\nclass B extends A {\r\n simpleChild() {\r\n this.data = this.data \u002B 1\r\n return this\r\n }\r\n}\r\na = new A\r\nb = new B\r\n\r\narrow = a.arrow\r\nbinded = a.binded\r\nassigned = a.assigned\r\nassignedArrow = a.assignedArrow\r\narrowGlobalCashed = a.arrowGlobalCashed\r\nassignedArrowCashed = a.assignedArrowCashed\r\nassignedSimpleCashed = a.assignedSimpleCashed","TestCases":[{"Name":"binded","Code":"a.binded()","IsDeferred":false},{"Name":"simple","Code":"b.simple()","IsDeferred":false},{"Name":"assigned","Code":"a.assigned()","IsDeferred":false},{"Name":"simpleChild","Code":"b.simpleChild()","IsDeferred":false},{"Name":"assignedArrow","Code":"a.assignedArrow()","IsDeferred":false},{"Name":"pure arrow","Code":"arrow()","IsDeferred":false},{"Name":"pure binded","Code":"binded()","IsDeferred":false},{"Name":"pure assigned","Code":"assigned()","IsDeferred":false},{"Name":"pure assignedArrow","Code":"assignedArrow()","IsDeferred":false},{"Name":"pure arrowGlobalCashed","Code":"arrowGlobalCashed()","IsDeferred":false},{"Name":"assignedArrowCashed","Code":"assignedArrowCashed()","IsDeferred":false},{"Name":"assignedSimpleCashed","Code":"assignedSimpleCashed()","IsDeferred":false},{"Name":"arrow","Code":"a.arrow()","IsDeferred":false}]}