{"ScriptPreparationCode":"var element = {\r\n\tl1prop: {\r\n \tl2prop: {\r\n \tl3prop: Array.from({length: 50}, (val, i) =\u003E i)\r\n },\r\n l2prop2: {\r\n \tl3prop: Array.from({length: 50}, (val, i) =\u003E i)\r\n },\r\n },\r\n l1prop2: {\r\n \tl2prop: Array.from({length: 50}, (val, i) =\u003E i)\r\n },\r\n a: \u0027fsdfs\u0027,\r\n b: \u0027efwesd\u0027,\r\n c: \u0027fefsdvs\u0027,\r\n d: 1,\r\n e: 2,\r\n f: \u0027gfdgfdsgd\u0027,\r\n g: null,\r\n h: undefined\r\n}","TestCases":[{"Name":"Vanilla JS","Code":"function deepExtend(out, ...arguments_) {\r\n if (!out) {\r\n return {};\r\n }\r\n\r\n for (const obj of arguments_) {\r\n if (!obj) {\r\n continue;\r\n }\r\n\r\n for (const [key, value] of Object.entries(obj)) {\r\n switch (Object.prototype.toString.call(value)) {\r\n case \u0027[object Object]\u0027:\r\n out[key] = out[key] || {};\r\n out[key] = deepExtend(out[key], value);\r\n break;\r\n case \u0027[object Array]\u0027:\r\n out[key] = deepExtend(new Array(value.length), value);\r\n break;\r\n default:\r\n out[key] = value;\r\n }\r\n }\r\n }\r\n\r\n return out;\r\n}\r\n\r\ndeepExtend({}, element);\r\n","IsDeferred":false},{"Name":"JQuery","Code":"$.extend(true, {}, element);","IsDeferred":false},{"Name":"json","Code":"JSON.parse(JSON.stringify(element));","IsDeferred":false}]}