code: function baseSet(object, path, value, customizer) {
  	  if (!isObject$2(object)) {
  	    return object;
  	  }
  	  path = isKey$2(path, object) ? [path] : castPath$2(path);
  
  	  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$2(objValue)
  	          ? objValue
  	          : (isIndex$1(path[index + 1]) ? [] : {});
  	      }
  	    }
  	    assignValue(nested, key, newValue);
  	    nested = nested[key];
  	  }
  	  return object;
  	}
docs: 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`.