From: marija Date: Tue, 9 Feb 2016 17:08:13 +0000 (+0100) Subject: optimization of isArray and unit tests X-Git-Tag: 2.12.0~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6888c6689066be8f2d65afd193716c57fc40443d;p=thirdparty%2Fmoment.git optimization of isArray and unit tests removed paddings --- diff --git a/src/lib/utils/is-array.js b/src/lib/utils/is-array.js index 46bd6c68b..2d0e0f3da 100644 --- a/src/lib/utils/is-array.js +++ b/src/lib/utils/is-array.js @@ -1,3 +1,3 @@ export default function isArray(input) { - return Object.prototype.toString.call(input) === '[object Array]'; + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; } diff --git a/src/test/moment/is_array.js b/src/test/moment/is_array.js new file mode 100644 index 000000000..460234483 --- /dev/null +++ b/src/test/moment/is_array.js @@ -0,0 +1,19 @@ +import { module, test } from '../qunit'; +import isArray from '../../lib/utils/is-array.js'; + + +test('isArray recognizes Array objects', function (assert) { + assert.ok(isArray([1,2,3]), 'array args'); + assert.ok(isArray([]), 'empty array'); + assert.ok(isArray(new Array(1,2,3)), 'array constructor'); +}); + +test('isArray rejects non-Array objects', function (assert) { + assert.ok(!isArray(), 'nothing'); + assert.ok(!isArray(undefined), 'undefined'); + assert.ok(!isArray(null), 'null'); + assert.ok(!isArray(123), 'number'); + assert.ok(!isArray('[1,2,3]'), 'string'); + assert.ok(!isArray(new Date()), 'date'); + assert.ok(!isArray({a:1,b:2}), 'object'); +});