Browse Source

REPORT-45698 fix: 兼容fr有的方法

es6
iapyang 4 years ago
parent
commit
b12523eb09
  1. 509
      src/core/lodash.js

509
src/core/lodash.js

@ -1,7 +1,7 @@
/** /**
* @license * @license
* Lodash (Custom Build) <https://lodash.com/> * Lodash (Custom Build) <https://lodash.com/>
* Build: `lodash core plus="debounce,throttle,get,set,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without,difference,defaultsDeep,trim,merge,groupBy,uniqBy,before,after"` * Build: `lodash core plus="debounce,throttle,get,set,findIndex,findLastIndex,findKey,findLastKey,isArrayLike,invert,invertBy,uniq,uniqBy,omit,omitBy,zip,unzip,rest,range,random,reject,intersection,drop,countBy,union,zipObject,initial,cloneDeep,clamp,isPlainObject,take,takeRight,without,difference,defaultsDeep,trim,merge,groupBy,uniqBy,before,after,unescape"`
* Copyright JS Foundation and other contributors <https://js.foundation/> * Copyright JS Foundation and other contributors <https://js.foundation/>
* Released under MIT license <https://lodash.com/license> * Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
@ -117,7 +117,9 @@
uint32Tag = '[object Uint32Array]'; uint32Tag = '[object Uint32Array]';
/** Used to match HTML entities and HTML characters. */ /** Used to match HTML entities and HTML characters. */
var reUnescapedHtml = /[&<>"']/g, var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,
reUnescapedHtml = /[&<>"']/g,
reHasEscapedHtml = RegExp(reEscapedHtml.source),
reHasUnescapedHtml = RegExp(reUnescapedHtml.source); reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
/** Used to match property names within property paths. */ /** Used to match property names within property paths. */
@ -194,34 +196,34 @@
/** Used to identify `toStringTag` values of typed arrays. */ /** Used to identify `toStringTag` values of typed arrays. */
var typedArrayTags = {}; var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true; typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] =
typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] =
typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag] = false; typedArrayTags[weakMapTag] = false;
/** Used to identify `toStringTag` values supported by `_.clone`. */ /** Used to identify `toStringTag` values supported by `_.clone`. */
var cloneableTags = {}; var cloneableTags = {};
cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[argsTag] = cloneableTags[arrayTag] =
cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[boolTag] = cloneableTags[dateTag] =
cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] =
cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] =
cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[int32Tag] = cloneableTags[mapTag] =
cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[numberTag] = cloneableTags[objectTag] =
cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[regexpTag] = cloneableTags[setTag] =
cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] =
cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[errorTag] = cloneableTags[funcTag] =
cloneableTags[weakMapTag] = false; cloneableTags[weakMapTag] = false;
/** Used to map characters to HTML entities. */ /** Used to map characters to HTML entities. */
var htmlEscapes = { var htmlEscapes = {
@ -232,6 +234,15 @@
"'": '&#39;' "'": '&#39;'
}; };
/** Used to map HTML entities to characters. */
var htmlUnescapes = {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
'&quot;': '"',
'&#39;': "'"
};
/** Built-in method references without a dependency on `root`. */ /** Built-in method references without a dependency on `root`. */
var freeParseFloat = parseFloat, var freeParseFloat = parseFloat,
freeParseInt = parseInt; freeParseInt = parseInt;
@ -578,8 +589,8 @@
*/ */
function baseIndexOf(array, value, fromIndex) { function baseIndexOf(array, value, fromIndex) {
return value === value return value === value
? strictIndexOf(array, value, fromIndex) ? strictIndexOf(array, value, fromIndex)
: baseFindIndex(array, baseIsNaN, fromIndex); : baseFindIndex(array, baseIsNaN, fromIndex);
} }
/** /**
@ -635,8 +646,8 @@
function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
eachFunc(collection, function(value, index, collection) { eachFunc(collection, function(value, index, collection) {
accumulator = initAccum accumulator = initAccum
? (initAccum = false, value) ? (initAccum = false, value)
: iteratee(accumulator, value, index, collection); : iteratee(accumulator, value, index, collection);
}); });
return accumulator; return accumulator;
} }
@ -889,8 +900,8 @@
*/ */
function safeGet(object, key) { function safeGet(object, key) {
return key == '__proto__' return key == '__proto__'
? undefined ? undefined
: object[key]; : object[key];
} }
/** /**
@ -941,8 +952,8 @@
*/ */
function stringSize(string) { function stringSize(string) {
return hasUnicode(string) return hasUnicode(string)
? unicodeSize(string) ? unicodeSize(string)
: asciiSize(string); : asciiSize(string);
} }
/** /**
@ -954,10 +965,19 @@
*/ */
function stringToArray(string) { function stringToArray(string) {
return hasUnicode(string) return hasUnicode(string)
? unicodeToArray(string) ? unicodeToArray(string)
: asciiToArray(string); : asciiToArray(string);
} }
/**
* Used by `_.unescape` to convert HTML entities to characters.
*
* @private
* @param {string} chr The matched character to unescape.
* @returns {string} Returns the unescaped character.
*/
var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
/** /**
* Gets the size of a Unicode `string`. * Gets the size of a Unicode `string`.
* *
@ -1024,8 +1044,8 @@
/** Used to detect if a method is native. */ /** Used to detect if a method is native. */
var reIsNative = RegExp('^' + var reIsNative = RegExp('^' +
funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
); );
/** Built-in value references. */ /** Built-in value references. */
@ -1362,30 +1382,30 @@
var result = []; var result = [];
outer: outer:
while (length-- && resIndex < takeCount) { while (length-- && resIndex < takeCount) {
index += dir; index += dir;
var iterIndex = -1, var iterIndex = -1,
value = array[index]; value = array[index];
while (++iterIndex < iterLength) { while (++iterIndex < iterLength) {
var data = iteratees[iterIndex], var data = iteratees[iterIndex],
iteratee = data.iteratee, iteratee = data.iteratee,
type = data.type, type = data.type,
computed = iteratee(value); computed = iteratee(value);
if (type == LAZY_MAP_FLAG) { if (type == LAZY_MAP_FLAG) {
value = computed; value = computed;
} else if (!computed) { } else if (!computed) {
if (type == LAZY_FILTER_FLAG) { if (type == LAZY_FILTER_FLAG) {
continue outer; continue outer;
} else { } else {
break outer; break outer;
}
}
} }
result[resIndex++] = value;
} }
}
result[resIndex++] = value;
}
return result; return result;
} }
@ -1893,14 +1913,14 @@
for (var key in value) { for (var key in value) {
if ((inherited || hasOwnProperty.call(value, key)) && if ((inherited || hasOwnProperty.call(value, key)) &&
!(skipIndexes && ( !(skipIndexes && (
// Safari 9 has enumerable `arguments.length` in strict mode. // Safari 9 has enumerable `arguments.length` in strict mode.
key == 'length' || key == 'length' ||
// Node.js 0.10 has enumerable non-index properties on buffers. // Node.js 0.10 has enumerable non-index properties on buffers.
(isBuff && (key == 'offset' || key == 'parent')) || (isBuff && (key == 'offset' || key == 'parent')) ||
// PhantomJS 2 has enumerable non-index properties on typed arrays. // PhantomJS 2 has enumerable non-index properties on typed arrays.
(isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
// Skip index properties. // Skip index properties.
isIndex(key, length) isIndex(key, length)
))) { ))) {
result.push(key); result.push(key);
} }
@ -2115,8 +2135,8 @@
result = (isFlat || isFunc) ? {} : initCloneObject(value); result = (isFlat || isFunc) ? {} : initCloneObject(value);
if (!isDeep) { if (!isDeep) {
return isFlat return isFlat
? copySymbolsIn(value, baseAssignIn(result, value)) ? copySymbolsIn(value, baseAssignIn(result, value))
: copySymbols(value, baseAssign(result, value)); : copySymbols(value, baseAssign(result, value));
} }
} else { } else {
if (!cloneableTags[tag]) { if (!cloneableTags[tag]) {
@ -2150,8 +2170,8 @@
} }
var keysFunc = isFull var keysFunc = isFull
? (isFlat ? getAllKeysIn : getAllKeys) ? (isFlat ? getAllKeysIn : getAllKeys)
: (isFlat ? keysIn : keys); : (isFlat ? keysIn : keys);
var props = isArr ? undefined : keysFunc(value); var props = isArr ? undefined : keysFunc(value);
arrayEach(props || value, function(subValue, key) { arrayEach(props || value, function(subValue, key) {
@ -2217,24 +2237,24 @@
values = new SetCache(values); values = new SetCache(values);
} }
outer: outer:
while (++index < length) { while (++index < length) {
var value = array[index], var value = array[index],
computed = iteratee == null ? value : iteratee(value); computed = iteratee == null ? value : iteratee(value);
value = (comparator || value !== 0) ? value : 0; value = (comparator || value !== 0) ? value : 0;
if (isCommon && computed === computed) { if (isCommon && computed === computed) {
var valuesIndex = valuesLength; var valuesIndex = valuesLength;
while (valuesIndex--) { while (valuesIndex--) {
if (values[valuesIndex] === computed) { if (values[valuesIndex] === computed) {
continue outer; continue outer;
}
}
result.push(value);
}
else if (!includes(values, computed, comparator)) {
result.push(value);
} }
} }
result.push(value);
}
else if (!includes(values, computed, comparator)) {
result.push(value);
}
}
return result; return result;
} }
@ -2285,9 +2305,9 @@
current = iteratee(value); current = iteratee(value);
if (current != null && (computed === undefined if (current != null && (computed === undefined
? (current === current && !isSymbol(current)) ? (current === current && !isSymbol(current))
: comparator(current, computed) : comparator(current, computed)
)) { )) {
var computed = current, var computed = current,
result = value; result = value;
} }
@ -2459,8 +2479,8 @@
return value === undefined ? undefinedTag : nullTag; return value === undefined ? undefinedTag : nullTag;
} }
return (symToStringTag && symToStringTag in Object(value)) return (symToStringTag && symToStringTag in Object(value))
? getRawTag(value) ? getRawTag(value)
: objectToString(value); : objectToString(value);
} }
/** /**
@ -2526,8 +2546,8 @@
} }
maxLength = nativeMin(array.length, maxLength); maxLength = nativeMin(array.length, maxLength);
caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
? new SetCache(othIndex && array) ? new SetCache(othIndex && array)
: undefined; : undefined;
} }
array = arrays[0]; array = arrays[0];
@ -2535,31 +2555,31 @@
seen = caches[0]; seen = caches[0];
outer: outer:
while (++index < length && result.length < maxLength) { while (++index < length && result.length < maxLength) {
var value = array[index], var value = array[index],
computed = iteratee ? iteratee(value) : value; computed = iteratee ? iteratee(value) : value;
value = (comparator || value !== 0) ? value : 0; value = (comparator || value !== 0) ? value : 0;
if (!(seen if (!(seen
? cacheHas(seen, computed) ? cacheHas(seen, computed)
: includes(result, computed, comparator) : includes(result, computed, comparator)
)) { )) {
othIndex = othLength; othIndex = othLength;
while (--othIndex) { while (--othIndex) {
var cache = caches[othIndex]; var cache = caches[othIndex];
if (!(cache if (!(cache
? cacheHas(cache, computed) ? cacheHas(cache, computed)
: includes(arrays[othIndex], computed, comparator)) : includes(arrays[othIndex], computed, comparator))
) { ) {
continue outer; continue outer;
}
}
if (seen) {
seen.push(computed);
}
result.push(value);
} }
} }
if (seen) {
seen.push(computed);
}
result.push(value);
}
}
return result; return result;
} }
@ -2681,8 +2701,8 @@
if (isSameTag && !objIsObj) { if (isSameTag && !objIsObj) {
stack || (stack = new Stack); stack || (stack = new Stack);
return (objIsArr || isTypedArray(object)) return (objIsArr || isTypedArray(object))
? equalArrays(object, other, bitmask, customizer, equalFunc, stack) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
: equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
} }
if (!(bitmask & COMPARE_PARTIAL_FLAG)) { if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
@ -2736,9 +2756,9 @@
while (index--) { while (index--) {
var data = matchData[index]; var data = matchData[index];
if ((noCustomizer && data[2]) if ((noCustomizer && data[2])
? data[1] !== object[data[0]] ? data[1] !== object[data[0]]
: !(data[0] in object) : !(data[0] in object)
) { ) {
return false; return false;
} }
} }
@ -2758,9 +2778,9 @@
var result = customizer(objValue, srcValue, key, object, source, stack); var result = customizer(objValue, srcValue, key, object, source, stack);
} }
if (!(result === undefined if (!(result === undefined
? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
: result : result
)) { )) {
return false; return false;
} }
} }
@ -2815,7 +2835,7 @@
*/ */
function baseIsTypedArray(value) { function baseIsTypedArray(value) {
return isObjectLike(value) && return isObjectLike(value) &&
isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
} }
/** /**
@ -2836,8 +2856,8 @@
} }
if (typeof value == 'object') { if (typeof value == 'object') {
return isArray(value) return isArray(value)
? baseMatchesProperty(value[0], value[1]) ? baseMatchesProperty(value[0], value[1])
: baseMatches(value); : baseMatches(value);
} }
return property(value); return property(value);
} }
@ -2947,8 +2967,8 @@
return function(object) { return function(object) {
var objValue = get(object, path); var objValue = get(object, path);
return (objValue === undefined && objValue === srcValue) return (objValue === undefined && objValue === srcValue)
? hasIn(object, path) ? hasIn(object, path)
: baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
}; };
} }
@ -2974,8 +2994,8 @@
} }
else { else {
var newValue = customizer var newValue = customizer
? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
: undefined; : undefined;
if (newValue === undefined) { if (newValue === undefined) {
newValue = srcValue; newValue = srcValue;
@ -3010,8 +3030,8 @@
return; return;
} }
var newValue = customizer var newValue = customizer
? customizer(objValue, srcValue, (key + ''), object, source, stack) ? customizer(objValue, srcValue, (key + ''), object, source, stack)
: undefined; : undefined;
var isCommon = newValue === undefined; var isCommon = newValue === undefined;
@ -3218,8 +3238,8 @@
newValue = customizer ? customizer(objValue, key, nested) : undefined; newValue = customizer ? customizer(objValue, key, nested) : undefined;
if (newValue === undefined) { if (newValue === undefined) {
newValue = isObject(objValue) newValue = isObject(objValue)
? objValue ? objValue
: (isIndex(path[index + 1]) ? [] : {}); : (isIndex(path[index + 1]) ? [] : {});
} }
} }
assignValue(nested, key, newValue); assignValue(nested, key, newValue);
@ -3365,30 +3385,30 @@
seen = iteratee ? [] : result; seen = iteratee ? [] : result;
} }
outer: outer:
while (++index < length) { while (++index < length) {
var value = array[index], var value = array[index],
computed = iteratee ? iteratee(value) : value; computed = iteratee ? iteratee(value) : value;
value = (comparator || value !== 0) ? value : 0; value = (comparator || value !== 0) ? value : 0;
if (isCommon && computed === computed) { if (isCommon && computed === computed) {
var seenIndex = seen.length; var seenIndex = seen.length;
while (seenIndex--) { while (seenIndex--) {
if (seen[seenIndex] === computed) { if (seen[seenIndex] === computed) {
continue outer; continue outer;
}
}
if (iteratee) {
seen.push(computed);
}
result.push(value);
}
else if (!includes(seen, computed, comparator)) {
if (seen !== result) {
seen.push(computed);
}
result.push(value);
} }
} }
if (iteratee) {
seen.push(computed);
}
result.push(value);
}
else if (!includes(seen, computed, comparator)) {
if (seen !== result) {
seen.push(computed);
}
result.push(value);
}
}
return result; return result;
} }
@ -3762,8 +3782,8 @@
var key = props[index]; var key = props[index];
var newValue = customizer var newValue = customizer
? customizer(object[key], source[key], key, object, source) ? customizer(object[key], source[key], key, object, source)
: undefined; : undefined;
if (newValue === undefined) { if (newValue === undefined) {
newValue = source[key]; newValue = source[key];
@ -3833,8 +3853,8 @@
guard = length > 2 ? sources[2] : undefined; guard = length > 2 ? sources[2] : undefined;
customizer = (assigner.length > 3 && typeof customizer == 'function') customizer = (assigner.length > 3 && typeof customizer == 'function')
? (length--, customizer) ? (length--, customizer)
: undefined; : undefined;
if (guard && isIterateeCall(sources[0], sources[1], guard)) { if (guard && isIterateeCall(sources[0], sources[1], guard)) {
customizer = length < 3 ? undefined : customizer; customizer = length < 3 ? undefined : customizer;
@ -3980,14 +4000,14 @@
args[index] = arguments[index]; args[index] = arguments[index];
} }
var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
? [] ? []
: replaceHolders(args, placeholder); : replaceHolders(args, placeholder);
length -= holders.length; length -= holders.length;
if (length < arity) { if (length < arity) {
return createRecurry( return createRecurry(
func, bitmask, createHybrid, wrapper.placeholder, undefined, func, bitmask, createHybrid, wrapper.placeholder, undefined,
args, holders, undefined, undefined, arity - length); args, holders, undefined, undefined, arity - length);
} }
var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
return apply(fn, this, args); return apply(fn, this, args);
@ -4064,8 +4084,8 @@
if (isCurried && length < arity) { if (isCurried && length < arity) {
var newHolders = replaceHolders(args, placeholder); var newHolders = replaceHolders(args, placeholder);
return createRecurry( return createRecurry(
func, bitmask, createHybrid, wrapper.placeholder, thisArg, func, bitmask, createHybrid, wrapper.placeholder, thisArg,
args, newHolders, argPos, ary, arity - length args, newHolders, argPos, ary, arity - length
); );
} }
var thisBinding = isBind ? thisArg : this, var thisBinding = isBind ? thisArg : this,
@ -4277,8 +4297,8 @@
partials = newData[3]; partials = newData[3];
holders = newData[4]; holders = newData[4];
arity = newData[9] = newData[9] === undefined arity = newData[9] = newData[9] === undefined
? (isBindKey ? 0 : func.length) ? (isBindKey ? 0 : func.length)
: nativeMax(newData[9] - length, 0); : nativeMax(newData[9] - length, 0);
if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
@ -4373,8 +4393,8 @@
if (customizer) { if (customizer) {
var compared = isPartial var compared = isPartial
? customizer(othValue, arrValue, index, other, array, stack) ? customizer(othValue, arrValue, index, other, array, stack)
: customizer(arrValue, othValue, index, array, other, stack); : customizer(arrValue, othValue, index, array, other, stack);
} }
if (compared !== undefined) { if (compared !== undefined) {
if (compared) { if (compared) {
@ -4386,18 +4406,18 @@
// Recursively compare arrays (susceptible to call stack limits). // Recursively compare arrays (susceptible to call stack limits).
if (seen) { if (seen) {
if (!arraySome(other, function(othValue, othIndex) { if (!arraySome(other, function(othValue, othIndex) {
if (!cacheHas(seen, othIndex) && if (!cacheHas(seen, othIndex) &&
(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
return seen.push(othIndex); return seen.push(othIndex);
} }
})) { })) {
result = false; result = false;
break; break;
} }
} else if (!( } else if (!(
arrValue === othValue || arrValue === othValue ||
equalFunc(arrValue, othValue, bitmask, customizer, stack) equalFunc(arrValue, othValue, bitmask, customizer, stack)
)) { )) {
result = false; result = false;
break; break;
} }
@ -4536,14 +4556,14 @@
if (customizer) { if (customizer) {
var compared = isPartial var compared = isPartial
? customizer(othValue, objValue, key, other, object, stack) ? customizer(othValue, objValue, key, other, object, stack)
: customizer(objValue, othValue, key, object, other, stack); : customizer(objValue, othValue, key, object, other, stack);
} }
// Recursively compare objects (susceptible to call stack limits). // Recursively compare objects (susceptible to call stack limits).
if (!(compared === undefined if (!(compared === undefined
? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
: compared : compared
)) { )) {
result = false; result = false;
break; break;
} }
@ -4557,7 +4577,7 @@
if (objCtor != othCtor && if (objCtor != othCtor &&
('constructor' in object && 'constructor' in other) && ('constructor' in object && 'constructor' in other) &&
!(typeof objCtor == 'function' && objCtor instanceof objCtor && !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
typeof othCtor == 'function' && othCtor instanceof othCtor)) { typeof othCtor == 'function' && othCtor instanceof othCtor)) {
result = false; result = false;
} }
} }
@ -4656,8 +4676,8 @@
function getMapData(map, key) { function getMapData(map, key) {
var data = map.__data__; var data = map.__data__;
return isKeyable(key) return isKeyable(key)
? data[typeof key == 'string' ? 'string' : 'hash'] ? data[typeof key == 'string' ? 'string' : 'hash']
: data.map; : data.map;
} }
/** /**
@ -4854,7 +4874,7 @@
} }
length = object == null ? 0 : object.length; length = object == null ? 0 : object.length;
return !!length && isLength(length) && isIndex(key, length) && return !!length && isLength(length) && isIndex(key, length) &&
(isArray(object) || isArguments(object)); (isArray(object) || isArguments(object));
} }
/** /**
@ -4885,8 +4905,8 @@
*/ */
function initCloneObject(object) { function initCloneObject(object) {
return (typeof object.constructor == 'function' && !isPrototype(object)) return (typeof object.constructor == 'function' && !isPrototype(object))
? baseCreate(getPrototype(object)) ? baseCreate(getPrototype(object))
: {}; : {};
} }
/** /**
@ -4965,7 +4985,7 @@
*/ */
function isFlattenable(value) { function isFlattenable(value) {
return isArray(value) || isArguments(value) || return isArray(value) || isArguments(value) ||
!!(spreadableSymbol && value && value[spreadableSymbol]); !!(spreadableSymbol && value && value[spreadableSymbol]);
} }
/** /**
@ -4981,9 +5001,9 @@
length = length == null ? MAX_SAFE_INTEGER : length; length = length == null ? MAX_SAFE_INTEGER : length;
return !!length && return !!length &&
(type == 'number' || (type == 'number' ||
(type != 'symbol' && reIsUint.test(value))) && (type != 'symbol' && reIsUint.test(value))) &&
(value > -1 && value % 1 == 0 && value < length); (value > -1 && value % 1 == 0 && value < length);
} }
/** /**
@ -5002,9 +5022,9 @@
} }
var type = typeof index; var type = typeof index;
if (type == 'number' if (type == 'number'
? (isArrayLike(object) && isIndex(index, object.length)) ? (isArrayLike(object) && isIndex(index, object.length))
: (type == 'string' && index in object) : (type == 'string' && index in object)
) { ) {
return eq(object[index], value); return eq(object[index], value);
} }
return false; return false;
@ -5028,7 +5048,7 @@
return true; return true;
} }
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
(object != null && value in Object(object)); (object != null && value in Object(object));
} }
/** /**
@ -5041,8 +5061,8 @@
function isKeyable(value) { function isKeyable(value) {
var type = typeof value; var type = typeof value;
return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
? (value !== '__proto__') ? (value !== '__proto__')
: (value === null); : (value === null);
} }
/** /**
@ -5119,7 +5139,7 @@
return false; return false;
} }
return object[key] === srcValue && return object[key] === srcValue &&
(srcValue !== undefined || (key in Object(object))); (srcValue !== undefined || (key in Object(object)));
}; };
} }
@ -5166,9 +5186,9 @@
isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
var isCombo = var isCombo =
((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
// Exit early if metadata can't be merged. // Exit early if metadata can't be merged.
if (!(isCommon || isCombo)) { if (!(isCommon || isCombo)) {
@ -5558,8 +5578,8 @@
*/ */
var difference = baseRest(function(array, values) { var difference = baseRest(function(array, values) {
return isArrayLikeObject(array) return isArrayLikeObject(array)
? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))
: []; : [];
}); });
/** /**
@ -5687,8 +5707,8 @@
if (fromIndex !== undefined) { if (fromIndex !== undefined) {
index = toInteger(fromIndex); index = toInteger(fromIndex);
index = fromIndex < 0 index = fromIndex < 0
? nativeMax(length + index, 0) ? nativeMax(length + index, 0)
: nativeMin(index, length - 1); : nativeMin(index, length - 1);
} }
return baseFindIndex(array, baseIteratee(predicate, 3), index, true); return baseFindIndex(array, baseIteratee(predicate, 3), index, true);
} }
@ -5827,8 +5847,8 @@
var intersection = baseRest(function(arrays) { var intersection = baseRest(function(arrays) {
var mapped = arrayMap(arrays, castArrayLikeObject); var mapped = arrayMap(arrays, castArrayLikeObject);
return (mapped.length && mapped[0] === arrays[0]) return (mapped.length && mapped[0] === arrays[0])
? baseIntersection(mapped) ? baseIntersection(mapped)
: []; : [];
}); });
/** /**
@ -6103,8 +6123,8 @@
*/ */
var without = baseRest(function(array, values) { var without = baseRest(function(array, values) {
return isArrayLikeObject(array) return isArrayLikeObject(array)
? baseDifference(array, values) ? baseDifference(array, values)
: []; : [];
}); });
/** /**
@ -7210,8 +7230,8 @@
timeWaiting = wait - timeSinceLastCall; timeWaiting = wait - timeSinceLastCall;
return maxing return maxing
? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
: timeWaiting; : timeWaiting;
} }
function shouldInvoke(time) { function shouldInvoke(time) {
@ -7222,7 +7242,7 @@
// trailing edge, the system time has gone backwards and we're treating // trailing edge, the system time has gone backwards and we're treating
// it as the trailing edge, or we've hit the `maxWait` limit. // it as the trailing edge, or we've hit the `maxWait` limit.
return (lastCallTime === undefined || (timeSinceLastCall >= wait) || return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
(timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
} }
function timerExpired() { function timerExpired() {
@ -7661,7 +7681,7 @@
*/ */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
!propertyIsEnumerable.call(value, 'callee'); !propertyIsEnumerable.call(value, 'callee');
}; };
/** /**
@ -7766,7 +7786,7 @@
*/ */
function isBoolean(value) { function isBoolean(value) {
return value === true || value === false || return value === true || value === false ||
(isObjectLike(value) && baseGetTag(value) == boolTag); (isObjectLike(value) && baseGetTag(value) == boolTag);
} }
/** /**
@ -7846,7 +7866,7 @@
} }
if (isArrayLike(value) && if (isArrayLike(value) &&
(isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
isBuffer(value) || isTypedArray(value) || isArguments(value))) { isBuffer(value) || isTypedArray(value) || isArguments(value))) {
return !value.length; return !value.length;
} }
var tag = getTag(value); var tag = getTag(value);
@ -7981,7 +8001,7 @@
*/ */
function isLength(value) { function isLength(value) {
return typeof value == 'number' && return typeof value == 'number' &&
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
} }
/** /**
@ -8145,7 +8165,7 @@
*/ */
function isNumber(value) { function isNumber(value) {
return typeof value == 'number' || return typeof value == 'number' ||
(isObjectLike(value) && baseGetTag(value) == numberTag); (isObjectLike(value) && baseGetTag(value) == numberTag);
} }
/** /**
@ -8186,7 +8206,7 @@
} }
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
return typeof Ctor == 'function' && Ctor instanceof Ctor && return typeof Ctor == 'function' && Ctor instanceof Ctor &&
funcToString.call(Ctor) == objectCtorString; funcToString.call(Ctor) == objectCtorString;
} }
/** /**
@ -8246,7 +8266,7 @@
*/ */
function isString(value) { function isString(value) {
return typeof value == 'string' || return typeof value == 'string' ||
(!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
} }
/** /**
@ -8268,7 +8288,7 @@
*/ */
function isSymbol(value) { function isSymbol(value) {
return typeof value == 'symbol' || return typeof value == 'symbol' ||
(isObjectLike(value) && baseGetTag(value) == symbolTag); (isObjectLike(value) && baseGetTag(value) == symbolTag);
} }
/** /**
@ -8458,8 +8478,8 @@
value = value.replace(reTrim, ''); value = value.replace(reTrim, '');
var isBinary = reIsBinary.test(value); var isBinary = reIsBinary.test(value);
return (isBinary || reIsOctal.test(value)) return (isBinary || reIsOctal.test(value))
? freeParseInt(value.slice(2), isBinary ? 2 : 8) ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
: (reIsBadHex.test(value) ? NAN : +value); : (reIsBadHex.test(value) ? NAN : +value);
} }
/** /**
@ -9402,8 +9422,8 @@
function escape(string) { function escape(string) {
string = toString(string); string = toString(string);
return (string && reHasUnescapedHtml.test(string)) return (string && reHasUnescapedHtml.test(string))
? string.replace(reUnescapedHtml, escapeHtmlChar) ? string.replace(reUnescapedHtml, escapeHtmlChar)
: string; : string;
} }
/** /**
@ -9444,6 +9464,32 @@
return castSlice(strSymbols, start, end).join(''); return castSlice(strSymbols, start, end).join('');
} }
/**
* The inverse of `_.escape`; this method converts the HTML entities
* `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to
* their corresponding characters.
*
* **Note:** No other HTML entities are unescaped. To unescape additional
* HTML entities use a third-party library like [_he_](https://mths.be/he).
*
* @static
* @memberOf _
* @since 0.6.0
* @category String
* @param {string} [string=''] The string to unescape.
* @returns {string} Returns the unescaped string.
* @example
*
* _.unescape('fred, barney, &amp; pebbles');
* // => 'fred, barney, & pebbles'
*/
function unescape(string) {
string = toString(string);
return (string && reHasEscapedHtml.test(string))
? string.replace(reEscapedHtml, unescapeHtmlChar)
: string;
}
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
/** /**
@ -9829,8 +9875,8 @@
*/ */
function max(array) { function max(array) {
return (array && array.length) return (array && array.length)
? baseExtremum(array, identity, baseGt) ? baseExtremum(array, identity, baseGt)
: undefined; : undefined;
} }
/** /**
@ -9853,8 +9899,8 @@
*/ */
function min(array) { function min(array) {
return (array && array.length) return (array && array.length)
? baseExtremum(array, identity, baseLt) ? baseExtremum(array, identity, baseLt)
: undefined; : undefined;
} }
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
@ -9969,6 +10015,7 @@
lodash.size = size; lodash.size = size;
lodash.some = some; lodash.some = some;
lodash.trim = trim; lodash.trim = trim;
lodash.unescape = unescape;
lodash.uniqueId = uniqueId; lodash.uniqueId = uniqueId;
// Add aliases. // Add aliases.
@ -10002,8 +10049,8 @@
n = n === undefined ? 1 : nativeMax(toInteger(n), 0); n = n === undefined ? 1 : nativeMax(toInteger(n), 0);
var result = (this.__filtered__ && !index) var result = (this.__filtered__ && !index)
? new LazyWrapper(this) ? new LazyWrapper(this)
: this.clone(); : this.clone();
if (result.__filtered__) { if (result.__filtered__) {
result.__takeCount__ = nativeMin(n, result.__takeCount__); result.__takeCount__ = nativeMin(n, result.__takeCount__);

Loading…
Cancel
Save