code: function deepAssign(object, source) {
      for (var key in source) {
          if (source.hasOwnProperty(key)) {
              if (typeof object[key] === "object" && typeof source[key] === "object") {
                  deepAssign(object[key], source[key]);
              } else {
                  object[key] = source[key];
              }
          }
      }
  
      return object;
  }
docs: Recursive function that takes two objects and updates the properties on the
  first object based on the ones in the second. Basically, it's a recursive
  version of Object.assign.