Bump to v4.17.5.

This commit is contained in:
John-David Dalton
2018-02-02 21:11:07 -08:00
parent 528e134995
commit edff3e8d25
16 changed files with 130 additions and 34 deletions

View File

@@ -1,7 +1,13 @@
import apply from './_apply.js';
import assignInWith from './assignInWith.js';
import baseRest from './_baseRest.js';
import customDefaultsAssignIn from './_customDefaultsAssignIn.js';
import eq from './eq.js';
import isIterateeCall from './_isIterateeCall.js';
import keysIn from './keysIn.js';
/** Used for built-in method references. */
var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
/**
* Assigns own and inherited enumerable string keyed properties of source
@@ -24,9 +30,35 @@ import customDefaultsAssignIn from './_customDefaultsAssignIn.js';
* _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
* // => { 'a': 1, 'b': 2 }
*/
var defaults = baseRest(function(args) {
args.push(undefined, customDefaultsAssignIn);
return apply(assignInWith, undefined, args);
var defaults = baseRest(function(object, sources) {
object = Object(object);
var index = -1;
var length = sources.length;
var guard = length > 2 ? sources[2] : undefined;
if (guard && isIterateeCall(sources[0], sources[1], guard)) {
length = 1;
}
while (++index < length) {
var source = sources[index];
var props = keysIn(source);
var propsIndex = -1;
var propsLength = props.length;
while (++propsIndex < propsLength) {
var key = props[propsIndex];
var value = object[key];
if (value === undefined ||
(eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
object[key] = source[key];
}
}
}
return object;
});
export default defaults;