Only avoid converting -0 to 0 if comparator is provided.

This commit is contained in:
John-David Dalton
2016-04-20 12:33:26 -07:00
parent 0e4b307585
commit 6987d70dc2
2 changed files with 72 additions and 17 deletions

View File

@@ -2417,9 +2417,10 @@
}
outer:
while (++index < length) {
var value = (value = array[index]) === 0 ? 0 : value,
var value = array[index],
computed = iteratee ? iteratee(value) : value;
value = (comparator || value !== 0) ? value : 0;
if (isCommon && computed === computed) {
var valuesIndex = valuesLength;
while (valuesIndex--) {
@@ -2775,9 +2776,10 @@
outer:
while (++index < length && result.length < maxLength) {
var value = (value = array[index]) === 0 ? 0 : value,
var value = array[index],
computed = iteratee ? iteratee(value) : value;
value = (comparator || value !== 0) ? value : 0;
if (!(seen
? cacheHas(seen, computed)
: includes(result, computed, comparator)
@@ -3665,12 +3667,12 @@
result = [];
while (++index < length) {
var value = (value = array[index]) === 0 ? 0 : value,
var value = array[index],
computed = iteratee ? iteratee(value) : value;
if (!index || !eq(computed, seen)) {
var seen = computed;
result[resIndex++] = value;
result[resIndex++] = value === 0 ? 0 : value;
}
}
return result;
@@ -3749,9 +3751,10 @@
}
outer:
while (++index < length) {
var value = (value = array[index]) === 0 ? 0 : value,
var value = array[index],
computed = iteratee ? iteratee(value) : value;
value = (comparator || value !== 0) ? value : 0;
if (isCommon && computed === computed) {
var seenIndex = seen.length;
while (seenIndex--) {