Adjust method dependencies for _.flatten, _.uniq, and _.union.

Former-commit-id: f742abfbd9d0c63b16a4f7d3a903ae53d2b7a1fe
This commit is contained in:
John-David Dalton
2013-07-06 14:40:14 -07:00
parent 6a73b0820e
commit c0c36d3338

View File

@@ -108,7 +108,7 @@
'findIndex': ['createCallback'],
'findKey': ['createCallback', 'forOwn'],
'first': ['createCallback', 'slice'],
'flatten': ['isArray', 'overloadWrapper'],
'flatten': ['basicFlatten', 'overloadWrapper'],
'forEach': ['basicEach', 'createCallback', 'isArray'],
'forIn': ['createIterator'],
'forOwn': ['createIterator'],
@@ -176,8 +176,8 @@
'toArray': ['isString', 'slice', 'values'],
'transform': ['createCallback', 'createObject', 'forOwn', 'isArray'],
'unescape': ['unescapeHtmlChar'],
'union': ['isArray', 'uniq'],
'uniq': ['cacheIndexOf', 'createCache', 'getArray', 'getIndexOf', 'overloadWrapper', 'releaseArray', 'releaseObject'],
'union': ['basicFlatten', 'basicUniq'],
'uniq': ['basicUniq', 'overloadWrapper'],
'uniqueId': [],
'unzip': ['max', 'pluck'],
'value': ['basicEach', 'forOwn', 'isArray', 'lodash', 'wrapperValueOf', 'lodashWrapper'],
@@ -190,7 +190,9 @@
// private functions
'basicEach': ['createIterator'],
'basicFlatten': ['isArguments', 'isArray'],
'basicIndexOf': [],
'basicUniq': ['cacheIndexOf', 'createCache', 'getArray', 'getIndexOf', 'releaseArray', 'releaseObject'],
'cacheIndexOf': ['basicIndexOf'],
'cachePush': [],
'charAtCallback': [],
@@ -502,7 +504,9 @@
/** List of private functions */
var privateFuncs = [
'basicEach',
'basicFlatten',
'basicIndex',
'basicUniq',
'cacheIndexOf',
'cachePush',
'charAtCallback',
@@ -2631,6 +2635,19 @@
});
}
_.each(['flatten', 'uniq'], function(funcName) {
if (!isLodashFunc(funcName)) {
var basicFuncName = 'basic' + capitalize(funcName);
(funcDependencyMap.union = _.without(funcDependencyMap.union, basicFuncName)).push(funcName);
funcDependencyMap[funcName] = _.without(
funcDependencyMap[funcName].concat(funcDependencyMap[basicFuncName], funcDependencyMap.overloadWrapper),
basicFuncName, 'overloadWrapper'
);
}
});
_.each(['basicEach', 'forEach', 'forIn', 'forOwn'], function(funcName) {
if (funcName == 'basicEach' || !isLodashFunc(funcName)) {
(varDependencyMap[funcName] || (varDependencyMap[funcName] = [])).push('indicatorObject');
@@ -3156,7 +3173,7 @@
'' ,
' while (++index < length) {',
' var value = array[index];',
' if (isArray(value)) {',
" if (value && typeof value == 'object' && (isArray(value) || isArguments(value))) {",
' push.apply(result, isShallow ? value : flatten(value));',
' } else {',
' result.push(value);',
@@ -3600,6 +3617,16 @@
// unexpose `lodash.support`
source = source.replace(/\blodash\.support *= */, '');
// replace `basicFlatten` and `basicUniq` with `flatten` and `uniq` in `_.union`
_.each(['flatten', 'uniq'], function(funcName) {
if (!isLodashFunc(funcName)) {
source = source.replace(matchFunction(source, 'union'), function(match) {
var basicFuncName = 'basic' + capitalize(funcName);
return match.replace(RegExp('\\b' + basicFuncName + '\\b', 'g'), funcName);
});
}
});
// replace `slice` with `nativeSlice.call`
_.each(['clone', 'first', 'initial', 'last', 'rest', 'toArray'], function(funcName) {
if (funcName == 'clone'