code: function mergeRecursive(obj1, obj2) {
    if (!obj1 && obj2) {
      obj1 = {};
    }
    for (var key in obj2) {
      if (!obj2.hasOwnProperty(key)) {
        continue;
      }
      merge(obj1, obj2, key);
    }
    return obj1;
  }
docs: TODO Maybe replace with https://github.com/Raynos/xtend check browser build size, though.