code: function(target, source) {
      target = cloneJSON(target);
  
      for (var key in source) {
        if (source.hasOwnProperty(key)) {
          if (isObject(target[key]) && isObject(source[key])) {
            target[key] = merge(target[key], source[key]);
          } else {
            target[key] = source[key];
          }
        }
      }
      return target;
    }
docs: returns a result of deep merge of two objects
  
  @param {Object} target
  @param {Object} source
  @return {Object}