{"ScriptPreparationCode":"function serialize(obj){}\r\n\r\nvar C1 = (function () {\r\n function C1() {\r\n this.idToObject = { a: 1 };\r\n }\r\n C1.prototype.test = function () {\r\n serialize(this);\r\n this.idToObject.a\u002B\u002B;\r\n };\r\n return C1;\r\n}());\r\n\r\nfunction createC2() {\r\n\tvar idToObject = {a:1};\r\n var self = {\r\n \tidToObject: idToObject,\r\n \ttest: function () {\r\n serialize(self);\r\n \t\tidToObject.a\u002B\u002B;\r\n \t}\r\n };\r\n \r\n return self;\r\n}\r\n\r\n function C6() {\r\n this.idToObject = { a: 1 };\r\n }\r\n C6.prototype.test = function () {\r\n serialize(this);\r\n this.idToObject.a\u002B\u002B;\r\n };\r\n\r\n\r\nvar c1 = new C1();\r\nvar c2 = createC2();\r\n\r\nvar test3 = createC2().test;\r\nvar c4 = new C1();\r\nvar test4 = c4.test.bind(c4);\r\nvar c5 = new C1();\r\nvar test5 = function() { return c5.test(); };\r\nvar c6 = new C6();","TestCases":[{"Name":"prototype function \u002B \u0022this\u0022","Code":"c1.test();","IsDeferred":false},{"Name":"object function \u002B closure","Code":"c2.test();","IsDeferred":false},{"Name":"capture method","Code":"test3();","IsDeferred":false},{"Name":"bind function","Code":"test4();","IsDeferred":false},{"Name":"wrap function","Code":"test5();","IsDeferred":false},{"Name":"prototype function \u002B \u0022this\u0022 (remove 1 scope)","Code":"c6.test();","IsDeferred":false}]}