es6-map-shim

A polyfill ES6 Map that closely follows the latest spec

es6-map-shim - A polyfill for ES6 Maps

This is a destructive shim that implements the ES6 Map specification as closely as possible.

var map = new Map([['foo', 'bar'], [-0, function(){}]]);
map.set(null, 42);
 
map.get(-0);
=> function(){}
 
map.has(null);
=> true
 
map.keys();
=> ['foo', -0, null]
 
map.values();
=> ['bar', function(){}, 42]
 
map.items();
=> [['foo', 'bar'], [-0, function(){}], [null, 42]]
 
map.forEach(function(valuekeymapReference) {
  console.log(typeof value);
});
=> 'string'\n'function'\n'number'\n
 
var iterator = map.iterator();
iterator.next();
=> ['foo', 'bar']
iterator.next();
=> [-0, function(){}]
 
map.delete(null);
=> true
 
// Remove all items 
map.clear();
map.size;
=> 0
 
map.toString();
=> '[object Map]'

In browsers, include es6-map-shim.js in your page:

<script type="text/javascript" src="https://raw.github.com/eriwen/es6-map-shim/master/es6-map-shim.js"></script>

You can install this via:

  • npm for node.js v0.8+: npm install es6-map-shim
  • component(1): component install eriwen/es6-map-shim
  • bower: bower install es6-map-shim

If you also use the es5-shim, you can use this in:

  • IE7+ (not fully tested yet)
  • Firefox 15+
  • Google Chrome 21+
  • Safari 4+
  • Opera 12+
  • Node.js 0.8+
  • PhantomJS