Skip to content

Commit

Permalink
add support for typed arrays
Browse files Browse the repository at this point in the history
  • Loading branch information
kurkle committed Dec 14, 2018
1 parent 2a97ec2 commit 508f45b
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
13 changes: 10 additions & 3 deletions src/helpers/helpers.core.js
Expand Up @@ -32,13 +32,20 @@ var helpers = {
},

/**
* Returns true if `value` is an array, else returns false.
* Returns true if `value` is an array (including typed arrays), else returns false.
* @param {*} value - The value to test.
* @returns {Boolean}
* @function
*/
isArray: Array.isArray ? Array.isArray : function(value) {
return Object.prototype.toString.call(value) === '[object Array]';
isArray: function(value) {
if (Array.isArray && Array.isArray(value)) {
return true;
}
var type = Object.prototype.toString.call(value);
if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {
return true;
}
return false;
},

/**
Expand Down
4 changes: 4 additions & 0 deletions test/.eslintrc.yml
@@ -1,4 +1,8 @@
parserOptions:
ecmaVersion: 5 # don't rely on default, since its changed by env: es6

env:
es6: true # also changes default ecmaVersion to 6
jasmine: true

globals:
Expand Down
9 changes: 9 additions & 0 deletions test/specs/helpers.core.tests.js
Expand Up @@ -21,6 +21,15 @@ describe('Chart.helpers.core', function() {
expect(helpers.isArray([42])).toBeTruthy();
expect(helpers.isArray(new Array())).toBeTruthy();
expect(helpers.isArray(Array.prototype)).toBeTruthy();
expect(helpers.isArray(new Int8Array(2))).toBeTruthy();
expect(helpers.isArray(new Uint8Array())).toBeTruthy();
expect(helpers.isArray(new Uint8ClampedArray([128, 244]))).toBeTruthy();
expect(helpers.isArray(new Int16Array())).toBeTruthy();
expect(helpers.isArray(new Uint16Array())).toBeTruthy();
expect(helpers.isArray(new Int32Array())).toBeTruthy();
expect(helpers.isArray(new Uint32Array())).toBeTruthy();
expect(helpers.isArray(new Float32Array([1.2]))).toBeTruthy();
expect(helpers.isArray(new Float64Array([]))).toBeTruthy();
});
it('should return false if value is not an array', function() {
expect(helpers.isArray()).toBeFalsy();
Expand Down

0 comments on commit 508f45b

Please sign in to comment.