summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/lodash/internal/baseMergeDeep.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/lodash/internal/baseMergeDeep.js')
-rw-r--r--tools/eslint/node_modules/lodash/internal/baseMergeDeep.js67
1 files changed, 0 insertions, 67 deletions
diff --git a/tools/eslint/node_modules/lodash/internal/baseMergeDeep.js b/tools/eslint/node_modules/lodash/internal/baseMergeDeep.js
deleted file mode 100644
index f8aeac5916..0000000000
--- a/tools/eslint/node_modules/lodash/internal/baseMergeDeep.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var arrayCopy = require('./arrayCopy'),
- isArguments = require('../lang/isArguments'),
- isArray = require('../lang/isArray'),
- isArrayLike = require('./isArrayLike'),
- isPlainObject = require('../lang/isPlainObject'),
- isTypedArray = require('../lang/isTypedArray'),
- toPlainObject = require('../lang/toPlainObject');
-
-/**
- * A specialized version of `baseMerge` for arrays and objects which performs
- * deep merges and tracks traversed objects enabling objects with circular
- * references to be merged.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @param {string} key The key of the value to merge.
- * @param {Function} mergeFunc The function to merge values.
- * @param {Function} [customizer] The function to customize merged values.
- * @param {Array} [stackA=[]] Tracks traversed source objects.
- * @param {Array} [stackB=[]] Associates values with source counterparts.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {
- var length = stackA.length,
- srcValue = source[key];
-
- while (length--) {
- if (stackA[length] == srcValue) {
- object[key] = stackB[length];
- return;
- }
- }
- var value = object[key],
- result = customizer ? customizer(value, srcValue, key, object, source) : undefined,
- isCommon = result === undefined;
-
- if (isCommon) {
- result = srcValue;
- if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {
- result = isArray(value)
- ? value
- : (isArrayLike(value) ? arrayCopy(value) : []);
- }
- else if (isPlainObject(srcValue) || isArguments(srcValue)) {
- result = isArguments(value)
- ? toPlainObject(value)
- : (isPlainObject(value) ? value : {});
- }
- else {
- isCommon = false;
- }
- }
- // Add the source value to the stack of traversed objects and associate
- // it with its merged value.
- stackA.push(srcValue);
- stackB.push(result);
-
- if (isCommon) {
- // Recursively merge objects and arrays (susceptible to call stack limits).
- object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);
- } else if (result === result ? (result !== value) : (value === value)) {
- object[key] = result;
- }
-}
-
-module.exports = baseMergeDeep;