{"ScriptPreparationCode":"const itemA = { name: \u0027itemA\u0027, things: [\u0027one\u0027, 2, \u0027three\u0027, Symbol(\u0027four\u0027)] };\r\nconst itemB = { name: \u0027itemB\u0027, otherThings: { fieldOne: 1, fieldTwo: \u0027two\u0027 } };","TestCases":[{"Name":"For-in assignment","Code":"// Object.assign() is at least 4x slower than a \u0022for in\u0022 loop\r\nconst fastObjectAssign = (target, source) =\u003E {\r\n if (!source || !target) return target;\r\n for (let key in source) target[key] = source[key];\r\n return target;\r\n};","IsDeferred":false},{"Name":"Object.assign mutable assignment","Code":"const directAssign = (target, source) =\u003E {\r\n return Object.assign(target, source);\r\n};","IsDeferred":false},{"Name":"Object.assign immutable assignment","Code":"const directAssign = (target, source) =\u003E {\r\n return Object.assign({}, target, source);\r\n};","IsDeferred":false}]}