dist/joiner.node.js
function baseSet$1(object, path, value, customizer) {
  if (!isObject$6(object)) {
    return object;
  }
  path = castPath$2(path, object);

  var index = -1,
      length = path.length,
      lastIndex = length - 1,
      nested = object;

  while (nested != null && ++index < length) {
    var key = toKey$2(path[index]),
        newValue = value;

    if (index != lastIndex) {
      var objValue = nested[key];
      newValue = customizer ? customizer(objValue, key, nested) : undefined;
      if (newValue === undefined) {
        newValue = isObject$6(objValue) ? objValue : isIndex$2(path[index + 1]) ? [] : {};
      }
    }
    assignValue$3(nested, key, newValue);
    nested = nested[key];
  }
  return object;
}
function baseSet$1(object, path, value, customizer) {
  if (!isObject$6(object)) {
    return object;
  }
  path = castPath$2(path, object);

  var index = -1,
      length = path.length,
      lastIndex = length - 1,
      nested = object;

  while (nested != null && ++index < length) {
    var key = toKey$2(path[index]),
        newValue = value;

    if (index != lastIndex) {
      var objValue = nested[key];
      newValue = customizer ? customizer(objValue, key, nested) : undefined;
      if (newValue === undefined) {
        newValue = isObject$6(objValue) ? objValue : isIndex$2(path[index + 1]) ? [] : {};
      }
    }
    assignValue$3(nested, key, newValue);
    nested = nested[key];
  }
  return object;
}
function baseSet$1 ( object , path , value , customizer ) { if ( ! isObject$6 ( object ) ) { return object ; } path = castPath$2 ( path , object ) ; var index = - 1 , length = path . length , lastIndex = length - 1 , nested = object ; while ( nested != null && ++ index < length ) { var key = toKey$2 ( path [ index ] ) , newValue = value ; if ( index != lastIndex ) { var objValue = nested [ key ] ; newValue = customizer ? customizer ( objValue , key , nested ) : undefined ; if ( newValue === undefined ) { newValue = isObject$6 ( objValue ) ? objValue : isIndex$2 ( path [ index + 1 ] ) ? [ ] : { } ; } } assignValue$3 ( nested , key , newValue ) ; nested = nested [ key ] ; } return object ; }
The base implementation of `_.set`.

@private
@param {Object} object The object to modify.
@param {Array|string} path The path of the property to set.
@param {*} value The value to set.
@param {Function} [customizer] The function to customize path creation.
@returns {Object} Returns `object`.
The base implementation of _ . set .