{"ScriptPreparationCode":"function Thing() {\r\n this.prop1 = 0;\r\n this.prop2 = false;\r\n}\r\nThing.prototype.doSomething = function () {\r\n this.prop1 = 1;\r\n this.prop2 = true;\r\n};\r\n\r\n\r\nlet proto = {\r\n doSomething() {\r\n this.prop1 = 1;\r\n this.prop2 = true;\r\n }\r\n}\r\n\r\nfunction createThing() {\r\n return Object.create(proto, {\r\n prop1: {\r\n value: 0,\r\n writable: true\r\n },\r\n prop2: {\r\n value: false,\r\n writable: true\r\n }\r\n });\r\n}\r\n\r\nfunction literalThing() {\r\n return {\r\n prop1: 0,\r\n prop2: false,\r\n __proto__: proto\r\n };\r\n}\r\n\r\nfunction createAndAssignThing() {\r\n return Object.assign(Object.create(proto), {\r\n prop1: 0,\r\n prop2: false\r\n });\r\n}","TestCases":[{"Name":"new","Code":"new Thing();","IsDeferred":false},{"Name":"object.create","Code":"createThing();","IsDeferred":false},{"Name":"object literal\u002Bproto","Code":"literalThing();","IsDeferred":false},{"Name":"object.create\u002Bobject.assign","Code":"createAndAssignThing();","IsDeferred":false}]}