Optimize _.max and _.min for gzip.

Former-commit-id: e4d6eb949824718aa967208203b7c487df7e02f5
This commit is contained in:
John-David Dalton
2012-12-23 16:49:00 -06:00
parent 0ad6ac95b2
commit 408a5c168f
5 changed files with 107 additions and 99 deletions

View File

@@ -2346,11 +2346,19 @@
*/
function max(collection, callback, thisArg) {
var computed = -Infinity,
index = -1,
length = collection ? collection.length : 0,
result = computed;
if (callback || !isArray(collection)) {
if (!callback && isArray(collection)) {
var index = -1,
length = collection.length;
while (++index < length) {
var value = collection[index];
if (value > result) {
result = value;
}
}
} else {
callback = !callback && isString(collection)
? charAtCallback
: createCallback(callback, thisArg);
@@ -2362,12 +2370,6 @@
result = value;
}
});
} else {
while (++index < length) {
if (collection[index] > result) {
result = collection[index];
}
}
}
return result;
}
@@ -2392,11 +2394,19 @@
*/
function min(collection, callback, thisArg) {
var computed = Infinity,
index = -1,
length = collection ? collection.length : 0,
result = computed;
if (callback || !isArray(collection)) {
if (!callback && isArray(collection)) {
var index = -1,
length = collection.length;
while (++index < length) {
var value = collection[index];
if (value < result) {
result = value;
}
}
} else {
callback = !callback && isString(collection)
? charAtCallback
: createCallback(callback, thisArg);
@@ -2408,12 +2418,6 @@
result = value;
}
});
} else {
while (++index < length) {
if (collection[index] < result) {
result = collection[index];
}
}
}
return result;
}