function baseAssign(object, source, customizer) {
      var index = -1,
          props = keys(source),
          length = props.length;

      while (++index < length) {
        var key = props[index];
        object[key] = customizer
          ? customizer(object[key], source[key], key, object, source)
          : source[key];
      }
      return object;
    }
The base implementation of `_.assign` without support for argument juggling,
multiple sources, and `this` binding.

@private
@param {Object} object The destination object.
@param {Object} source The source object.
@param {Function} [customizer] The function to customize assigning values.
@returns {Object} Returns the destination object.