Bump to v4.17.5.

This commit is contained in:
John-David Dalton
2018-02-02 21:11:07 -08:00
parent 528e134995
commit edff3e8d25
16 changed files with 130 additions and 34 deletions

View File

@@ -15,7 +15,9 @@ import initCloneByTag from './_initCloneByTag.js';
import initCloneObject from './_initCloneObject.js';
import isArray from './isArray.js';
import isBuffer from './isBuffer.js';
import isMap from './isMap.js';
import isObject from './isObject.js';
import isSet from './isSet.js';
import keys from './keys.js';
/** Used to compose bitmasks for cloning. */
@@ -123,7 +125,7 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
if (!cloneableTags[tag]) {
return object ? value : {};
}
result = initCloneByTag(value, tag, baseClone, isDeep);
result = initCloneByTag(value, tag, isDeep);
}
}
// Check for circular references and return its corresponding clone.
@@ -134,6 +136,22 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
}
stack.set(value, result);
if (isSet(value)) {
value.forEach(function(subValue) {
result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
});
return result;
}
if (isMap(value)) {
value.forEach(function(subValue, key) {
result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
});
return result;
}
var keysFunc = isFull
? (isFlat ? getAllKeysIn : getAllKeys)
: (isFlat ? keysIn : keys);