{"ScriptPreparationCode":"var user = {\r\n id: 1,\r\n email: \u0027bob@somewhere.com\u0027,\r\n personalInfo: {\r\n name: \u0027Robert\u0027,\r\n address: {\r\n road: \u0027Quartier Djinageryber\u0027,\r\n city: \u0027Timbuktu\u0027,\r\n country: \u0027Mali\u0027\r\n }\r\n }\r\n}\r\n\r\nfunction deepClone (source) {\r\n\r\n if (source instanceof Date) return new Date(source.getTime())\r\n\r\n if (Array.isArray(source)) {\r\n const clone = []\r\n let i = source.length\r\n\r\n while (i--) {\r\n const value = source[i]\r\n\r\n clone[i] = (value !== null \u0026\u0026 typeof value === \u0027object\u0027)\r\n ? deepClone(value)\r\n : value\r\n }\r\n\r\n return clone\r\n }\r\n\r\n const clone = {}\r\n\r\n for (const key in source) {\r\n if ({}.hasOwnProperty.call(source, key)) {\r\n const value = source[key]\r\n\r\n clone[key] = (value !== null \u0026\u0026 typeof value === \u0027object\u0027)\r\n ? deepClone(value)\r\n : value\r\n }\r\n }\r\n\r\n return clone\r\n}\r\n\r\nfunction assignField (key, value, obj) {\r\n return Object.assign(deepClone(obj), { [key]: value })\r\n}\r\n\r\n\r\nfunction setField (key, value, obj) {\r\n const clone = deepClone(obj)\r\n clone[key] = value\r\n\r\n return clone\r\n}","TestCases":[{"Name":"Object.assign property","Code":"assignField(\u0027email\u0027, \u0027robert@somewhere.com\u0027, user)","IsDeferred":false},{"Name":"set property","Code":"setField(\u0027email\u0027, \u0027robert@somewhere.com\u0027, user)","IsDeferred":false}]}