Sha256: 4080362dd49c412d376e6f21a5fd6d9e97827716acb8f3b1e79e9d576bcd7ec4
Contents?: true
Size: 1002 Bytes
Versions: 69
Compression:
Stored size: 1002 Bytes
Contents
define(['./hasOwn', '../lang/deepClone', '../lang/isObject'], function (hasOwn, deepClone, isObject) { /** * Deep merge objects. */ function merge() { var i = 1, key, val, obj, target; // make sure we don't modify source element and it's properties // objects are passed by reference target = deepClone( arguments[0] ); while (obj = arguments[i++]) { for (key in obj) { if ( ! hasOwn(obj, key) ) { continue; } val = obj[key]; if ( isObject(val) && isObject(target[key]) ){ // inception, deep merge objects target[key] = merge(target[key], val); } else { // make sure arrays, regexp, date, objects are cloned target[key] = deepClone(val); } } } return target; } return merge; });
Version data entries
69 entries across 69 versions & 2 rubygems