diff --git a/lodash.js b/lodash.js index a39806c39..c303a62b9 100644 --- a/lodash.js +++ b/lodash.js @@ -13862,6 +13862,9 @@ */ function add(augend, addend) { var result; + if (augend === undefined && addend === undefined) { + return 0; + } if (augend !== undefined) { result = augend; } @@ -14072,6 +14075,9 @@ */ function subtract(minuend, subtrahend) { var result; + if (minuend === undefined && subtrahend === undefined) { + return 0; + } if (minuend !== undefined) { result = minuend; } diff --git a/test/test.js b/test/test.js index 582399345..d5979338e 100644 --- a/test/test.js +++ b/test/test.js @@ -997,6 +997,12 @@ assert.strictEqual(_.add(-6, -4), -10); }); + QUnit.test('should return `0` when no arguments are given', function(assert) { + assert.expect(1); + + assert.strictEqual(_.add(), 0); + }); + QUnit.test('should not coerce arguments to numbers', function(assert) { assert.expect(2); @@ -19196,6 +19202,12 @@ assert.strictEqual(_.subtract(-6, -4), -2); }); + QUnit.test('should return `0` when no arguments are given', function(assert) { + assert.expect(1); + + assert.strictEqual(_.subtract(), 0); + }); + QUnit.test('should coerce arguments only numbers', function(assert) { assert.expect(2);