From 592824781c5a282d00bdca955ea187864ee69389 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sun, 4 Oct 2015 14:09:25 -0700 Subject: [PATCH] Make `isArrayLike` use `isFunction`. --- lodash.js | 2 +- test/test.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lodash.js b/lodash.js index 4bc736d4a..683b27cb0 100644 --- a/lodash.js +++ b/lodash.js @@ -8662,7 +8662,7 @@ */ function isArrayLike(value) { return value != null && - !(typeof value == 'function' && objToString.call(value) == funcTag) && isLength(getLength(value)); + !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value)); } /** diff --git a/test/test.js b/test/test.js index 573566fe6..53d5ff4e5 100644 --- a/test/test.js +++ b/test/test.js @@ -7322,7 +7322,11 @@ }); QUnit.test('should return `false` for non-arrays', function(assert) { - assert.expect(9); + assert.expect(10); + + var generator = _.attempt(function() { + return Function('return function*(){}'); + }); var expected = _.map(falsey, function(value) { return value === ''; @@ -7338,6 +7342,7 @@ assert.strictEqual(_.isArrayLike(new Date), false); assert.strictEqual(_.isArrayLike(new Error), false); assert.strictEqual(_.isArrayLike(_), false); + assert.strictEqual(_.isArrayLike(generator), false); assert.strictEqual(_.isArrayLike(slice), false); assert.strictEqual(_.isArrayLike({ 'a': 1 }), false); assert.strictEqual(_.isArrayLike(1), false);