Let createAssigner get correct customizer

When `_.defaults` is invoked using `_.reduce` / `_.reduceRight`
`createAssigner` discards the customizer, so the effect is
`_.assign` but not `_.defaults`

```
_.reduce([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "fred"}
_.reduceRight([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "barney"}

// Fixed
_.reduce([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "barney"}
_.reduceRight([{ 'user': 'barney' }, { 'user': 'fred' }], _.defaults)
// -> {user: "fred"}
```
This commit is contained in:
octref
2015-03-03 00:00:09 -05:00
committed by jdalton
parent 9a8345d4f9
commit 913778d5ab

View File

@@ -3167,6 +3167,9 @@
return object;
}
if (length > 3 && isIterateeCall(arguments[1], arguments[2], arguments[3])) {
if (typeof arguments[length - 1] == 'function') {
customizer = arguments[--length];
}
length = 2;
}
// Juggle arguments.