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