{"ScriptPreparationCode":"function getRandomInt(min, max) {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(Math.random() * (max - min) \u002B min);\r\n}\r\n\r\nconst getRandChar = () =\u003E getRandomInt(48, 127);\r\n\r\nconst isObject = (item) =\u003E (item \u0026\u0026 typeof item === \u0027object\u0027 \u0026\u0026 !Array.isArray(item));\r\n\r\nfunction mergeDeep(target, source) {\r\n let output = Object.assign({}, target);\r\n\r\n if (isObject(target) \u0026\u0026 isObject(source)) {\r\n Object.keys(source).forEach((key) =\u003E {\r\n if (isObject(source[key])) {\r\n if (!(key in target)) {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n else {\r\n output[key] = mergeDeep(target[key], source[key]);\r\n }\r\n } else {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n });\r\n }\r\n\r\n return output;\r\n}\r\n\r\nconst max1 = 100000; // 100,000 (100 Thousand)\r\nconst max2 = 10000000; // 10,000,000 (10 Million)\r\nconst max3 = 100000000; // 100,000,000 (100 Million)\r\n\r\nvar obj1 = {};\r\nvar obj2 = {};\r\n\r\nfor (let i1 = 0; i1 \u003C 13; i1\u002B\u002B) {\r\n const key1 = String.fromCharCode(...(new Array(15).map(v =\u003E getRandChar())));\r\n\r\n for (let i2 = 0; i2 \u003C 23; i2\u002B\u002B) {\r\n const key2 = String.fromCharCode(...(new Array(15).map(v =\u003E getRandChar())));\r\n\r\n for (let i3 = 0; i3 \u003C 42; i3\u002B\u002B) {\r\n const key3 = String.fromCharCode(...(new Array(15).map(v =\u003E getRandChar())));\r\n\r\n for (let i4 = 0; i4 \u003C 69; i4\u002B\u002B) {\r\n const key4 = String.fromCharCode(...(new Array(15).map(v =\u003E getRandChar())));\r\n\r\n for (let i5 = 0; i5 \u003C 13; i5\u002B\u002B) {\r\n const value1 = String.fromCharCode(...(new Array(15).map(v =\u003E getRandChar())));\r\n const value2 = String.fromCharCode(...(new Array(15).map(v =\u003E getRandChar())));\r\n Object.assign(\r\n obj1,\r\n { [key1]: { [key2]: { [key3]: { [key4]: { aValue: value1 } } } } },\r\n );\r\n Object.assign(\r\n obj2,\r\n { [key1]: { [key2]: { [key3]: { [key4]: { aValue: value2 } } } } },\r\n );\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","TestCases":[{"Name":"Native","Code":"document.getElementById(\u0027id1\u0027).textContent = \u0060Result is: ${mergeDeep(obj1, obj2)}\u0060;","IsDeferred":false},{"Name":"Lodash.js filter","Code":"document.getElementById(\u0027id2\u0027).textContent = \u0060Result is: ${_.merge(obj1, obj2)}\u0060;","IsDeferred":false}]}