{"ScriptPreparationCode":"function recursiveDeepCopy(obj) {\r\n return Object.keys(obj).reduce((v, d) =\u003E Object.assign(v, {\r\n [d]: (obj[d].constructor === Object) ? recursiveDeepCopy(obj[d]) : obj[d]\r\n }), {});\r\n}\r\n\r\nfunction jsonDeepCopy(o) {\r\n return JSON.parse(JSON.stringify(o));\r\n}\r\n\r\nfunction customDeepCloneAegis(obj) {\r\n if (obj === null || typeof(obj) !== \u0027object\u0027 || \u0027isActiveClone\u0027 in obj) {\r\n return obj;\r\n }\r\n let temp;\r\n if (obj instanceof Date) {\r\n temp = new obj.constructor();\r\n } else {\r\n temp = obj.constructor();\r\n }\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n obj.isActiveClone = null;\r\n temp[key] = customDeepCloneAegis(obj[key]);\r\n delete obj.isActiveClone;\r\n }\r\n }\r\n return temp;\r\n}\r\n\r\nfunction customDeepCloneAegisAllNew(obj) {\r\n if (obj === null || typeof(obj) !== \u0027object\u0027 || \u0027isActiveClone\u0027 in obj) {\r\n return obj;\r\n }\r\n const temp = new obj.constructor();\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n obj.isActiveClone = null;\r\n temp[key] = customDeepCloneAegis(obj[key]);\r\n delete obj.isActiveClone;\r\n }\r\n }\r\n return temp;\r\n}\r\n\r\nfunction customDeepCloneAutobound(o) {\r\n let newO, i;\r\n\r\n if (typeof o !== \u0027object\u0027 || !o) return o;\r\n\r\n if (Object.prototype.toString.apply(o) === \u0027[object Array]\u0027) {\r\n newO = [];\r\n for (i = 0; i \u003C o.length; i \u002B= 1) {\r\n newO[i] = customDeepCloneAutobound(o[i]);\r\n }\r\n return newO;\r\n }\r\n\r\n newO = {}\r\n for (i in o) {\r\n // eslint-disable-next-line\r\n if (o.hasOwnProperty(i)) {\r\n newO[i] = customDeepCloneAutobound(o[i]);\r\n }\r\n }\r\n return newO;\r\n}\r\n\r\n\r\nvar dimensions = [{\r\n \u0022dimensions\u0022: [{\r\n \u0022runtime\u0022: {\r\n \u0022common\u0022: {\r\n \u0022client\u0022: null,\r\n \u0022server\u0022: null\r\n }\r\n }\r\n }, {\r\n \u0022device\u0022: {\r\n \u0022android\u0022: null,\r\n \u0022blackberry\u0022: null,\r\n \u0022iemobile\u0022: null,\r\n \u0022iphone\u0022: null,\r\n \u0022ipad\u0022: null,\r\n \u0022kindle\u0022: null,\r\n \u0022opera-mini\u0022: null,\r\n \u0022palm\u0022: null\r\n }\r\n }, {\r\n \u0022environment\u0022: {\r\n \u0022development\u0022: {\r\n \u0022dev\u0022: null,\r\n \u0022test\u0022: null\r\n },\r\n \u0022production\u0022: {\r\n \u0022stage\u0022: null,\r\n \u0022prod\u0022: null\r\n }\r\n }\r\n }, {\r\n \u0022lang\u0022: {\r\n \u0022ar\u0022: {\r\n \u0022ar-JO\u0022: null,\r\n \u0022ar-MA\u0022: null,\r\n \u0022ar-SA\u0022: null,\r\n \u0022ar-EG\u0022: null\r\n },\r\n \u0022bn\u0022: {\r\n \u0022bn-IN\u0022: null\r\n },\r\n \u0022ca\u0022: {\r\n \u0022ca-ES\u0022: null\r\n },\r\n \u0022cs\u0022: {\r\n \u0022cs-CZ\u0022: null\r\n },\r\n \u0022da\u0022: {\r\n \u0022da-DK\u0022: null\r\n },\r\n \u0022de\u0022: {\r\n \u0022de-AT\u0022: null,\r\n \u0022de-DE\u0022: null\r\n },\r\n \u0022el\u0022: {\r\n \u0022el-GR\u0022: null\r\n },\r\n \u0022en\u0022: {\r\n \u0022en-AU\u0022: null,\r\n \u0022en-BG\u0022: null,\r\n \u0022en-CA\u0022: null,\r\n \u0022en-GB\u0022: null,\r\n \u0022en-GY\u0022: null,\r\n \u0022en-HK\u0022: null,\r\n \u0022en-IE\u0022: null,\r\n \u0022en-IN\u0022: null,\r\n \u0022en-MY\u0022: null,\r\n \u0022en-NZ\u0022: null,\r\n \u0022en-PH\u0022: null,\r\n \u0022en-SG\u0022: null,\r\n \u0022en-US\u0022: null,\r\n \u0022en-ZA\u0022: null\r\n },\r\n \u0022es\u0022: {\r\n \u0022es-AR\u0022: null,\r\n \u0022es-BO\u0022: null,\r\n \u0022es-CL\u0022: null,\r\n \u0022es-CO\u0022: null,\r\n \u0022es-EC\u0022: null,\r\n \u0022es-ES\u0022: null,\r\n \u0022es-MX\u0022: null,\r\n \u0022es-PE\u0022: null,\r\n \u0022es-PY\u0022: null,\r\n \u0022es-US\u0022: null,\r\n \u0022es-UY\u0022: null,\r\n \u0022es-VE\u0022: null\r\n },\r\n \u0022fi\u0022: {\r\n \u0022fi-FI\u0022: null\r\n },\r\n \u0022fr\u0022: {\r\n \u0022fr-BE\u0022: null,\r\n \u0022fr-CA\u0022: null,\r\n \u0022fr-FR\u0022: null,\r\n \u0022fr-GF\u0022: null\r\n },\r\n \u0022hi\u0022: {\r\n \u0022hi-IN\u0022: null\r\n },\r\n \u0022hu\u0022: {\r\n \u0022hu-HU\u0022: null\r\n },\r\n \u0022id\u0022: {\r\n \u0022id-ID\u0022: null\r\n },\r\n \u0022it\u0022: {\r\n \u0022it-IT\u0022: null\r\n },\r\n \u0022ja\u0022: {\r\n \u0022ja-JP\u0022: null\r\n },\r\n \u0022kn\u0022: {\r\n \u0022kn-IN\u0022: null\r\n },\r\n \u0022ko\u0022: {\r\n \u0022ko-KR\u0022: null\r\n },\r\n \u0022ml\u0022: {\r\n \u0022ml-IN\u0022: null\r\n },\r\n \u0022mr\u0022: {\r\n \u0022mr-IN\u0022: null\r\n },\r\n \u0022ms\u0022: {\r\n \u0022ms-MY\u0022: null\r\n },\r\n \u0022nb\u0022: {\r\n \u0022nb-NO\u0022: null\r\n },\r\n \u0022nl\u0022: {\r\n \u0022nl-BE\u0022: null,\r\n \u0022nl-NL\u0022: null,\r\n \u0022nl-SR\u0022: null\r\n },\r\n \u0022pl\u0022: {\r\n \u0022pl-PL\u0022: null\r\n },\r\n \u0022pt\u0022: {\r\n \u0022pt-BR\u0022: null\r\n },\r\n \u0022ro\u0022: {\r\n \u0022ro-RO\u0022: null\r\n },\r\n \u0022ru\u0022: {\r\n \u0022ru-RU\u0022: null\r\n },\r\n \u0022sv\u0022: {\r\n \u0022sv-SE\u0022: null\r\n },\r\n \u0022ta\u0022: {\r\n \u0022ta-IN\u0022: null\r\n },\r\n \u0022te\u0022: {\r\n \u0022te-IN\u0022: null\r\n },\r\n \u0022th\u0022: {\r\n \u0022th-TH\u0022: null\r\n },\r\n \u0022tr\u0022: {\r\n \u0022tr-TR\u0022: null\r\n },\r\n \u0022vi\u0022: {\r\n \u0022vi-VN\u0022: null\r\n },\r\n \u0022zh\u0022: {\r\n \u0022zh-Hans\u0022: {\r\n \u0022zh-Hans-CN\u0022: null\r\n },\r\n \u0022zh-Hant\u0022: {\r\n \u0022zh-Hant-HK\u0022: null,\r\n \u0022zh-Hant-TW\u0022: null\r\n }\r\n }\r\n }\r\n }]\r\n}]","TestCases":[{"Name":"Recursive Deep Copy","Code":"var dimensionsCopy = recursiveDeepCopy(dimensions);","IsDeferred":false},{"Name":"JSON Deep Copy","Code":"var dimensionsCopy = jsonDeepCopy(dimensions);","IsDeferred":false},{"Name":"lodash clone","Code":"var dimensionsCopy = _.cloneDeep(dimensions);","IsDeferred":false},{"Name":"customDeepCloneAegis","Code":"var dimensionsCopy = customDeepCloneAegis(dimensions);","IsDeferred":false},{"Name":"customDeepCloneAutobound","Code":"var dimensionsCopy = customDeepCloneAutobound(dimensions);","IsDeferred":false},{"Name":"customDeepCloneAegisAllNew","Code":"var dimensionsCopy = customDeepCloneAegisAllNew(dimensions);","IsDeferred":false}]}