{"ScriptPreparationCode":"var foo = {\r\n name: \u0022Title\u0022,\r\n size: \u002238041292\u0022,\r\n crc: \u0022a0e2ece5\u0022,\r\n md5: \u0022db0111e93941df77fcb9e911604a7667\u0022,\r\n sha1: \u00228071353940df7f22a178c401819af4bfd0d3727e\u0022\r\n}","TestCases":[{"Name":"Object.Assign","Code":"const clonedObject = Object.assign({}, foo);","IsDeferred":false},{"Name":"recursiveDeepCopy","Code":"function recursiveDeepCopy(o) {\r\n let newO,\r\n i;\r\n\r\n if (typeof o !== \u0027object\u0027) {\r\n return o;\r\n }\r\n if (!o) {\r\n return o;\r\n }\r\n\r\n if (Array.isArray(o)) {\r\n newO = [];\r\n for (i = 0; i \u003C o.length; i \u002B= 1) {\r\n newO[i] = recursiveDeepCopy(o[i]);\r\n }\r\n return newO;\r\n }\r\n\r\n newO = {};\r\n for (i in o) {\r\n if (o.hasOwnProperty(i)) {\r\n newO[i] = recursiveDeepCopy(o[i]);\r\n }\r\n }\r\n return newO;\r\n}\r\nconst clonedObject = recursiveDeepCopy(foo)","IsDeferred":false}]}