A robust &amp; optimized <code>Array.from</code> polyfill, based on the ECMAScript 6 specification.


A spec-compliant Array.from shim/polyfill/replacement that works as far down as ES3.

This package implements the es-shim API interface. It works in an ES3-supported environment and complies with the proposed spec.

The Array.from() method creates a new Array instance from an array-like or iterable object.

In a browser:

Via npm:

npm install array.from
var from = require('array.from');
var assert = require('assert');
assert.deepEqual(from('abc'), ['a', 'b', 'c']);
var from = require('array.from');
var assert = require('assert');
/* when Array#from is not present */
delete Array.from;
var shimmedFrom = from.shim();
assert.equal(shimmedFrom, from.getPolyfill());
assert.deepEqual(Array.from('foo'), from('foo'));
var from = require('array-from');
var assert = require('assert');
/* when Array#from is present */
var shimmedFrom = from.shim();
assert.equal(shimmedFrom, Array.from);
assert.deepEqual(Array.from('abc'), from('abc'));

Simply clone the repo, npm install, and run npm test

Mathias Bynens

This polyfill is available under the MIT license.