{"ScriptPreparationCode":"function Item() { \r\n\tthis._a = 0;\r\n \tthis._b = 0;\r\n \tthis._c = 0;\r\n \tthis._d = 0;\r\n}\r\n\r\nfunction create(ctor) {\r\n\tvar res;\r\n \tfor (var i = 0; i \u003C 100; i\u002B\u002B) {\r\n\t\tvar item = ctor();\r\n \tif (res === void 0 || Math.random() \u003C 0.5) {\r\n \tres = item; \r\n } \r\n }\r\n \treturn res;\r\n}\r\n\r\nfunction update(item) {\r\n \titem.a = item.b;\r\n \titem.c = item.d;\r\n}","TestCases":[{"Name":"Object.defineProperty","Code":"function ctor() {\r\n \tvar obj = new Item();\r\n \tObject.defineProperty(obj, \u0022a\u0022, {\r\n \tget: function() {\r\n\t\t\treturn this._a;\r\n },\r\n \tset: function(value) {\r\n \tthis._a \u002B= value; \r\n }\r\n });\r\n \tObject.defineProperty(obj, \u0022b\u0022, {\r\n \tget: function() {\r\n \treturn this._b * 2; \r\n },\r\n \tset: function(value) {\r\n \tthis._b \u002B= value \u002B 2; \r\n }\r\n });\r\n \tObject.defineProperty(obj, \u0022c\u0022, {\r\n \tget: function() {\r\n \treturn this._c * 4; \r\n },\r\n \tset: function(value) {\r\n \tthis._c \u002B= value / 2; \r\n }\r\n });\r\n \tObject.defineProperty(obj, \u0022d\u0022, {\r\n \tget: function() {\r\n \treturn this._d * 3; \r\n },\r\n \tset: function(value) {\r\n \tthis._d \u002B= value - 1; \r\n }\r\n });\r\n \treturn obj;\r\n}\r\n\r\nwindow.leak = update(create(ctor));","IsDeferred":false},{"Name":"Object.defineProperties","Code":"function ctor() {\r\n \tvar obj = new Item();\r\n \tObject.defineProperties(obj, {\r\n \ta: {\r\n get: function() {\r\n return this._a;\r\n },\r\n set: function(value) {\r\n this._a \u002B= value; \r\n }\r\n },\r\n \tb: {\r\n get: function() {\r\n \treturn this._b * 2; \r\n },\r\n set: function(value) {\r\n this._b \u002B= value \u002B 2; \r\n } \r\n },\r\n \tc: {\r\n get: function() {\r\n \treturn this._c * 4; \r\n },\r\n set: function(value) {\r\n this._c \u002B= value / 2; \r\n } \r\n },\r\n \td: {\r\n get: function() {\r\n \treturn this._d * 3; \r\n },\r\n set: function(value) {\r\n this._d \u002B= value - 1; \r\n }\r\n }\r\n });\r\n \treturn obj;\r\n}\r\n\r\nwindow.leak = update(create(ctor));","IsDeferred":false}]}