{"ScriptPreparationCode":"const source = {\r\n a: \u0022\u0022,\r\n b: \u0022\u0022,\r\n c: \u0022\u0022,\r\n setA: function() {\r\n this.a = \u0022\u0022;\r\n },\r\n setB: function() {\r\n this.b = \u0022\u0022;\r\n },\r\n setC: function() {\r\n this.c = \u0022\u0022;\r\n },\r\n};\r\n\r\nfunction assignProps1(target) {\r\n for (const key in source) {\r\n target[key] = source[key];\r\n }\r\n};\r\nfunction assignProps2(target) {\r\n for (const key in source) {\r\n target[key] = source[key];\r\n }\r\n};\r\nfunction assignProps3(target) {\r\n for (const key in source) {\r\n target[key] = source[key];\r\n }\r\n};\r\n\r\n\r\nconst noop = function() {};\r\n\r\nfunction getMonoData() {\r\n return {\r\n a: null,\r\n b: null,\r\n c: null,\r\n setA: null,\r\n setB: null,\r\n setC: null\r\n };\r\n}\r\n\r\nfunction getTypedData() {\r\n return {\r\n a: \u0022\u0022,\r\n b: \u0022\u0022,\r\n c: \u0022\u0022,\r\n setA: noop,\r\n setB: noop,\r\n setC: noop\r\n };\r\n}\r\n\r\nfunction getEmptyData() {\r\n return {};\r\n}","TestCases":[{"Name":"Monomorphic","Code":"assignProps1(getMonoData());","IsDeferred":false},{"Name":"Monomorphic Typed","Code":"assignProps2(getTypedData());","IsDeferred":false},{"Name":"Empty Object","Code":"assignProps3(getEmptyData());","IsDeferred":false}]}