mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 10:17:48 +00:00
Avoid returning assignDefaults if no object is provided to _.defaults.
This commit is contained in:
11
lodash.js
11
lodash.js
@@ -5440,11 +5440,11 @@
|
|||||||
* // => { 'name': 'barney', 'employer': 'slate' }
|
* // => { 'name': 'barney', 'employer': 'slate' }
|
||||||
*/
|
*/
|
||||||
function assign(object, source, guard) {
|
function assign(object, source, guard) {
|
||||||
if (!object) {
|
var args = arguments;
|
||||||
|
if (!object || args.length < 2) {
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
var args = arguments,
|
var argsIndex = 0,
|
||||||
argsIndex = 0,
|
|
||||||
argsLength = args.length,
|
argsLength = args.length,
|
||||||
type = typeof guard;
|
type = typeof guard;
|
||||||
|
|
||||||
@@ -5636,7 +5636,10 @@
|
|||||||
* _.defaults({ 'name': 'barney' }, { 'name': 'fred', 'employer': 'slate' });
|
* _.defaults({ 'name': 'barney' }, { 'name': 'fred', 'employer': 'slate' });
|
||||||
* // => { 'name': 'barney', 'employer': 'slate' }
|
* // => { 'name': 'barney', 'employer': 'slate' }
|
||||||
*/
|
*/
|
||||||
function defaults() {
|
function defaults(object) {
|
||||||
|
if (!object || arguments.length < 2) {
|
||||||
|
return object;
|
||||||
|
}
|
||||||
var args = slice(arguments);
|
var args = slice(arguments);
|
||||||
args.push(assignDefaults);
|
args.push(assignDefaults);
|
||||||
return assign.apply(null, args);
|
return assign.apply(null, args);
|
||||||
|
|||||||
@@ -2983,6 +2983,10 @@
|
|||||||
_.forEach(['assign', 'defaults', 'merge'], function(methodName) {
|
_.forEach(['assign', 'defaults', 'merge'], function(methodName) {
|
||||||
var func = _[methodName];
|
var func = _[methodName];
|
||||||
|
|
||||||
|
test('`_.' + methodName + '` should return `undefined` when no destination object is provided', 1, function() {
|
||||||
|
strictEqual(func(), undefined);
|
||||||
|
});
|
||||||
|
|
||||||
test('`_.' + methodName + '` should return the existing wrapper when chaining', 1, function() {
|
test('`_.' + methodName + '` should return the existing wrapper when chaining', 1, function() {
|
||||||
if (!isNpm) {
|
if (!isNpm) {
|
||||||
var wrapper = _({ 'a': 1 });
|
var wrapper = _({ 'a': 1 });
|
||||||
|
|||||||
Reference in New Issue
Block a user