An essential WeakMap polyfill for legacy browsers (IE < 11).
- CDN via https://unpkg.com/@ungap/weakmap
- ESM via
import WeakMap from '@ungap/weakmap'
- CJS via
const WeakMap = require('@ungap/weakmap')
Compatible down to IE9, works well with ES5 shim upfront in IE8 (and maybe lower too).
If you need this module to work in IE < 11 too with frozen objects, or template literals frozen via Babel transpilation, you need to either nullify Object.freeze
and others via something like <script>this.WeakMap||(Object.freeze=Object);</script>
on top of your pages, or you can nullify only template literals through:
<script>
this.WeakMap||(function(O,f){
f=O.freeze||O;O.freeze=function(o){return'raw'in o?o:f(o)}
}(Object));
</script>