docs: function mergeDeep (target, source) {
    let dummy;
  
    if (isObject(target) && isObject(source)) {
      for (const key in source) {
        if (isObject(source[key])) {
          if (!target[key]) {
            dummy = {};
            dummy[key] = {};
            objectAssign(target, dummy);
          }
          mergeDeep(target[key], source[key]);
        } else {
          dummy = {};
          dummy[key] = source[key];
          objectAssign(target, dummy);
        }
      }
    }
    return target;
  }