# es6-weak-map

> ECMAScript6 WeakMap polyfill

Latest version **2.0.3** (published 2019-06-07) · ISC license · 0 weekly downloads

## Install

```sh
npm install es6-weak-map
pnpm add es6-weak-map
yarn add es6-weak-map
bun add es6-weak-map
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.3 |
| Published | 2019-06-07 |
| First published | 2013-10-24 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | separate (@types/es6-weak-map) |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 12.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 30 |
| Author | Mariusz Nowak |
| Maintainers | medikoo |
| Keywords | map, weakmap, collection, es6, harmony, list, hash, gc, ponyfill |

## Links

- npm: https://www.npmjs.com/package/es6-weak-map
- Repository: https://github.com/medikoo/es6-weak-map
- Homepage: https://github.com/medikoo/es6-weak-map#readme
- Issues: https://github.com/medikoo/es6-weak-map/issues
- npm.io page: https://npm.io/package/es6-weak-map

## Dependencies (4)

- [d](https://npm.io/package/d.md) 1
- [es5-ext](https://npm.io/package/es5-ext.md) ^0.10.46
- [es6-symbol](https://npm.io/package/es6-symbol.md) ^3.1.1
- [es6-iterator](https://npm.io/package/es6-iterator.md) ^2.0.3

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 2.0.3 (latest) — 2019-06-07
- 2.0.2 — 2017-03-15
- 2.0.1 — 2015-10-02
- 2.0.0 — 2015-09-04
- 1.0.2 — 2015-05-07
- 1.0.1 — 2015-04-14
- 1.0.0 — 2015-04-13
- 0.1.4 — 2015-04-13
- 0.1.3 — 2015-04-12
- 0.1.2 — 2014-09-01
- 0.1.1 — 2014-05-15
- 0.1.0 — 2014-04-29
- 0.0.0 — 2013-10-24

## README

[![Build status][nix-build-image]][nix-build-url]
[![Windows status][win-build-image]][win-build-url]
![Transpilation status][transpilation-image]
[![npm version][npm-image]][npm-url]

# es6-weak-map

## WeakMap collection as specified in ECMAScript6

_Roughly inspired by Mark Miller's and Kris Kowal's [WeakMap implementation](https://github.com/drses/weak-map)_.

Differences are:

-   Assumes compliant ES5 environment (no weird ES3 workarounds or hacks)
-   Well modularized CJS style
-   Based on one solution.

### Limitations

-   Will fail on non extensible objects provided as keys

### Installation

    $ npm install es6-weak-map

To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)

### Usage

If you want to make sure your environment implements `WeakMap`, do:

```javascript
require("es6-weak-map/implement");
```

If you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing `WeakMap` on global scope, do:

```javascript
var WeakMap = require("es6-weak-map");
```

If you strictly want to use polyfill even if native `WeakMap` exists, do:

```javascript
var WeakMap = require("es6-weak-map/polyfill");
```

#### API

Best is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects). Still if you want quick look, follow example:

```javascript
var WeakMap = require("es6-weak-map");

var map = new WeakMap();
var obj = {};

map.set(obj, "foo"); // map
map.get(obj); // 'foo'
map.has(obj); // true
map.delete(obj); // true
map.get(obj); // undefined
map.has(obj); // false
map.set(obj, "bar"); // map
map.has(obj); // false
```

## Tests

    $ npm test

[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es6-weak-map/branches/master/shields_badge.svg
[nix-build-url]: https://semaphoreci.com/medikoo-org/es6-weak-map
[win-build-image]: https://ci.appveyor.com/api/projects/status/1c73c57pg4s6lwmu?svg=true
[win-build-url]: https://ci.appveyor.com/project/medikoo/es6-weak-map
[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg
[npm-image]: https://img.shields.io/npm/v/es6-weak-map.svg
[npm-url]: https://www.npmjs.com/package/es6-weak-map

---
_Source: https://npm.io/package/es6-weak-map · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
