From 091b5fbe30db874255eda41dc3903d3bb93540fa Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Mon, 11 Apr 2016 17:30:15 -0700 Subject: [PATCH] Make `_.head` avoid accessing array when its length is `0`. --- lodash.js | 2 +- test/test.js | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lodash.js b/lodash.js index aadced73d..fd2667dac 100644 --- a/lodash.js +++ b/lodash.js @@ -6415,7 +6415,7 @@ * // => undefined */ function head(array) { - return array ? array[0] : undefined; + return (array && array.length) ? array[0] : undefined; } /** diff --git a/test/test.js b/test/test.js index 4a1866d19..a3f58b219 100644 --- a/test/test.js +++ b/test/test.js @@ -7386,10 +7386,9 @@ QUnit.test('should return `undefined` when querying empty arrays', function(assert) { assert.expect(1); - var array = []; - array['-1'] = 1; - - assert.strictEqual(_.head(array), undefined); + arrayProto[0] = 1; + assert.strictEqual(_.head([]), undefined); + arrayProto.length = 0; }); QUnit.test('should work as an iteratee for methods like `_.map`', function(assert) {