Skip to content

polygonplanet/weakmap-polyfill

Repository files navigation

weakmap-polyfill

NPM Version Build Status Bundle Size (minified) GitHub License

ECMAScript6 WeakMap polyfill.

Installation

npm

$ npm install --save weakmap-polyfill

Usage

Import or require weakmap-polyfill, then WeakMap will be defined in the global scope if native WeakMap is not supported in running environment.

using import

import 'weakmap-polyfill';
const weakMap = new WeakMap();

using require

require('weakmap-polyfill');
var weakMap = new WeakMap();

browser (standalone)

<script src="weakmap-polyfill.min.js"></script>
<script>
var weakMap = new WeakMap();
</script>

Compatibility

  • Chrome 15
  • Firefox 3
  • IE 7
  • Safari 4
  • Opera 11.5
  • Edge

Browser Tests

Limitations

This polyfill has following few limitations.

  • WeakMap iterable argument is not supported. (23.3.1.1 WeakMap ( [ iterable ] ))
  • Frozen and sealed objects are not supported.
  • The values held by a WeakMap can't be collected once the map itself is GCed, since the values here are tied to the keys. #4

License

MIT