From 78982f3074cbb1c9522ac8b9e3ebec269f94018c Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Thu, 21 Jan 2016 01:13:21 -0600 Subject: [PATCH] Ensure `_.concat` returns an empty array for nullish `array` values. [closes #1856] --- lodash.js | 3 +++ test/test.js | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lodash.js b/lodash.js index f511c67d6..abded307b 100644 --- a/lodash.js +++ b/lodash.js @@ -5336,6 +5336,9 @@ * // => [1] */ var concat = rest(function(array, values) { + if (array == null) { + return []; + } values = baseFlatten(values); return arrayConcat(isArray(array) ? array : [Object(array)], values); }); diff --git a/test/test.js b/test/test.js index ff1f771f8..c3256fada 100644 --- a/test/test.js +++ b/test/test.js @@ -2827,6 +2827,21 @@ assert.deepEqual(array, [1]); }); + QUnit.test('should return an empty array when `array` is nullish', function(assert) { + assert.expect(1); + + var values = [, null, undefined], + expected = lodashStable.map(values, alwaysEmptyArray); + + var actual = lodashStable.map(values, function(value, index) { + try { + return index ? _.concat(value) : _.concat(); + } catch (e) {} + }); + + assert.deepEqual(actual, expected); + }); + QUnit.test('should treat sparse arrays as dense', function(assert) { assert.expect(3);