code: function mergeLight(/* target, ...sources */) {
  	var target = arguments[0];
  	var source, key, value, i;
  	for (i = 1; i < arguments.length; ++i) {
  		source = arguments[i];
  		if (isTerminal(source)) {
  			target = source;
  		} else {
  			if (isTerminal(target)) {
  				target = Array.isArray(source) ? Array(source.length) : {};
  			}
  			for (key in source) {
  				value = source[key];
  				if (value !== undefined) {
  					target[key] = mergeLight(target[key], value);
  				}
  			}
  		}
  	}
  	return target;
  }
docs: This is the "light", more performant version of `merge()`.  It does not support a
  customizer function or being used as a lodash iterator.
  
  @method mergeLight
  @static
  @param {Object} object - the destination object
  @param {Object} sources - the source object
  @return {Object} - the merged object