From 18ae1d7c184aa27e50ee3e70a95ca25bbd9c0e01 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sun, 7 Feb 2016 22:43:13 -0800 Subject: [PATCH] Ensure `_.add` and `_.subtract` return `0` when no arguments are given. --- lodash.js | 6 ++++++ test/test.js | 12 ++++++++++++ 2 files changed, 18 insertions(+) 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);