{"ScriptPreparationCode":"function mergeBase(a, b) {\r\n const typeA = Object.prototype.toString.call(a);\r\n const typeB = Object.prototype.toString.call(b);\r\n if (typeA === typeB) {\r\n switch (typeA) {\r\n case \u0022[object Object]\u0022:\r\n return Object.keys(b).forEach(\r\n (key) =\u003E (a[key] = mergeBase(a[key], b[key]))\r\n );\r\n case \u0022[object Array]\u0022:\r\n return b.forEach((item, idx) =\u003E (a[idx] = mergeBase(a[idx], item)));\r\n default:\r\n return b;\r\n }\r\n }\r\n switch (typeB) {\r\n case \u0022[object Object]\u0022:\r\n case \u0022[object Array]\u0022:\r\n return b;\r\n default:\r\n return b ?? a;\r\n }\r\n}\r\n\r\nfunction merge(base, ...sources) {\r\n sources.forEach((source) =\u003E {\r\n base = mergeBase(base, source);\r\n });\r\n return base;\r\n}\r\n\r\nvar colorsDest = {\r\n \u0022colors\u0022: [\r\n {\r\n \u0022color\u0022: \u0022black\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [255,255,255,1],\r\n \u0022hex\u0022: \u0022#000\u0022\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022white\u0022,\r\n \u0022category\u0022: \u0022value\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [0,0,0,1],\r\n \u0022hex\u0022: \u0022#FFF\u0022\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022red\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [255,0,0,1],\r\n \u0022hex\u0022: \u0022#FF0\u0022\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022blue\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [0,0,255,1],\r\n \u0022hex\u0022: \u0022#00F\u0022\r\n }\r\n }, \r\n ]\r\n}\r\n\r\n\r\nvar colorsSrc = {\r\n \u0022colors\u0022: [\r\n {\r\n \u0022color\u0022: \u0022black\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022white\u0022,\r\n \u0022category\u0022: \u0022value\u0022,\r\n },\r\n {\r\n \u0022color\u0022: \u0022red\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [255,0,0,1],\r\n \u0022hex\u0022: \u0022#FF0\u0022\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022blue\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [0,0,255,1],\r\n \u0022hex\u0022: \u0022#00F\u0022\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022yellow\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022primary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [255,255,0,1],\r\n \u0022hex\u0022: \u0022#FF0\u0022\r\n }\r\n },\r\n {\r\n \u0022color\u0022: \u0022green\u0022,\r\n \u0022category\u0022: \u0022hue\u0022,\r\n \u0022type\u0022: \u0022secondary\u0022,\r\n \u0022code\u0022: {\r\n \u0022rgba\u0022: [0,255,0,1],\r\n \u0022hex\u0022: \u0022#0F0\u0022\r\n }\r\n },\r\n ]\r\n}","TestCases":[{"Name":"_.merge()","Code":"var result = _.merge(colorsDest, colorsSrc);","IsDeferred":false},{"Name":"lodash-merge","Code":"var result = merge(colorsDest, colorsSrc);","IsDeferred":false}]}