UNPKG

@ungap/essential-map

Version:

An essential Map poorlyfill for legacy browsers.

44 lines (43 loc) 956 B
/*! (c) Andrea Giammarchi - ISC */ var self = {}; try { self.Map = Map; } catch (Map) { self.Map = function Map() { var i = 0; var k = []; var v = []; return { delete: function (key) { var had = contains(key); if (had) { k.splice(i, 1); v.splice(i, 1); } return had; }, forEach: function forEach(callback, context) { k.forEach( function (key, i) { callback.call(context, v[i], key, this); }, this ); }, get: function get(key) { return contains(key) ? v[i] : void 0; }, has: function has(key) { return contains(key); }, set: function set(key, value) { v[contains(key) ? i : (k.push(key) - 1)] = value; return this; } }; function contains(v) { i = k.indexOf(v); return -1 < i; } }; } module.exports = self.Map;