Liferay.Loader.define('sharing-web$lodash-es@4.17.15/_baseMerge', ['module', 'exports', 'require'], function (module, exports, require) {
  var define = undefined;
  var global = window;
  {
    import Stack from './_Stack.js';
    import assignMergeValue from './_assignMergeValue.js';
    import baseFor from './_baseFor.js';
    import baseMergeDeep from './_baseMergeDeep.js';
    import isObject from './isObject.js';
    import keysIn from './keysIn.js';
    import safeGet from './_safeGet.js';

    /**
     * The base implementation of `_.merge` without support for multiple sources.
     *
     * @private
     * @param {Object} object The destination object.
     * @param {Object} source The source object.
     * @param {number} srcIndex The index of `source`.
     * @param {Function} [customizer] The function to customize merged values.
     * @param {Object} [stack] Tracks traversed source values and their merged
     *  counterparts.
     */
    function baseMerge(object, source, srcIndex, customizer, stack) {
      if (object === source) {
        return;
      }
      baseFor(source, function (srcValue, key) {
        stack || (stack = new Stack());
        if (isObject(srcValue)) {
          baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
        } else {
          var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;

          if (newValue === undefined) {
            newValue = srcValue;
          }
          assignMergeValue(object, key, newValue);
        }
      }, keysIn);
    }

    export default baseMerge;
  }
});
//# sourceMappingURL=_baseMerge.js.map