{"ScriptPreparationCode":"function isObject(x) { return Object.prototype.toString.call(x) === \u0027[object Object]\u0027;}\r\n\r\nfunction deepMergeRightOnPlace(target, source) {\r\n for (const key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n const sourceVal = source[key];\r\n const targetVal = target[key];\r\n\r\n if (\r\n isObject(sourceVal) \u0026\u0026 isObject(targetVal)\r\n ) {\r\n // \u0420\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E\u0435 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432\r\n deepMergeRightOnPlace(targetVal, sourceVal);\r\n } else {\r\n // \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\r\n target[key] = sourceVal;\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n}\r\n\r\nfunction deepMergeRightOnPlace2(ref, source) {\r\n const keys = Object.keys(source);\r\n for (let i = 0; i \u003C keys.length; i \u002B= 1) {\r\n const key = keys[i];\r\n\r\n if (source.hasOwnProperty(key)) {\r\n const sourceVal = source[key];\r\n const targetVal = ref[key];\r\n\r\n if (isObject(sourceVal) \u0026\u0026 isObject(targetVal)) {\r\n deepMergeRightOnPlace(targetVal, sourceVal);\r\n } else {\r\n ref[key] = sourceVal;\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar obj1 = {\r\n\t\t\u0022a\u0022: \u00220001\u0022,\r\n\t\t\u0022b\u0022: \u0022donut\u0022,\r\n\t\t\u0022c\u0022: \u0022Cake\u0022,\r\n\t\t\u0022d\u0022: 0.55,\r\n\t\t\u0022e\u0022:\r\n\t\t\t{\r\n\t\t\t\t\u0022ea\u0022:\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t{ \u0022id\u0022: \u00221001\u0022, \u0022type\u0022: \u0022Regular\u0022 },\r\n\t\t\t\t\t\t{ \u0022id\u0022: \u00221002\u0022, \u0022type\u0022: \u0022Chocolate\u0022 },\r\n\t\t\t\t\t\t{ \u0022id\u0022: \u00221003\u0022, \u0022type\u0022: \u0022Blueberry\u0022 },\r\n\t\t\t\t\t\t{ \u0022id\u0022: \u00221004\u0022, \u0022type\u0022: \u0022Devil\u0027s Food\u0022 }\r\n\t\t\t\t\t]\r\n\t\t\t},\r\n\t\t\u0022f\u0022:\r\n\t\t\t[\r\n\t\t\t\t{ \u0022id\u0022: \u00225001\u0022, \u0022type\u0022: \u0022None\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225002\u0022, \u0022type\u0022: \u0022Glazed\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225005\u0022, \u0022type\u0022: \u0022Sugar\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225007\u0022, \u0022type\u0022: \u0022Powdered Sugar\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225006\u0022, \u0022type\u0022: \u0022Chocolate with Sprinkles\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225003\u0022, \u0022type\u0022: \u0022Chocolate\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225004\u0022, \u0022type\u0022: \u0022Maple\u0022 }\r\n\t\t\t]\r\n\t};\r\n\r\nvar obj2 = \r\n\t{\r\n\t\t\u0022a\u0022: \u00220003\u0022,\r\n\t\t\u0022b\u0022: \u0022Overwritten\u0022,\r\n\t\t\u0022c\u0022: \u0022Old Fashioned\u0022,\r\n\t\t\u0022d\u0022: 0.55,\r\n\t\t\u0022e\u0022:\r\n\t\t\t{\r\n\t\t\t\t\u0022ea\u0022:\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t{ \u0022id\u0022: \u00221001\u0022, \u0022type\u0022: \u0022Overwritten\u0022 },\r\n\t\t\t\t\t\t{ \u0022id\u0022: \u00221002\u0022, \u0022type\u0022: \u0022Chocolate\u0022 }\r\n\t\t\t\t\t]\r\n\t\t\t},\r\n\t\t\u0022f\u0022:\r\n\t\t\t[\r\n\t\t\t\t{ \u0022id\u0022: \u00225001\u0022, \u0022type\u0022: \u0022None\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225002\u0022, \u0022type\u0022: \u0022Glazed\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225003\u0022, \u0022type\u0022: \u0022Chocolate\u0022 },\r\n\t\t\t\t{ \u0022id\u0022: \u00225004\u0022, \u0022type\u0022: \u0022Maple\u0022 }\r\n\t\t\t]\r\n\t};","TestCases":[{"Name":"Ramda.mergeDeepRight","Code":"R.mergeDeepRight(obj1, obj2)","IsDeferred":false},{"Name":"Lodash.merge","Code":"merge(obj1, obj2)","IsDeferred":false},{"Name":"deepmerge","Code":"deepmerge(obj1, obj2)","IsDeferred":false},{"Name":"es-toolkit merge","Code":"_.merge(obj1, obj2)","IsDeferred":false},{"Name":"deepmergeRightOnPlace","Code":"deepMergeRightOnPlace(obj1, obj2)","IsDeferred":false},{"Name":"deepMergeRightOnPlace2","Code":"deepMergeRightOnPlace2(obj1, obj2)","IsDeferred":false}]}