Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stefanpenner/blank-object
https://github.com/stefanpenner/blank-object
Last synced: 17 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/stefanpenner/blank-object
- Owner: stefanpenner
- Created: 2015-09-03T20:45:19.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2016-08-05T15:50:58.000Z (over 8 years ago)
- Last Synced: 2024-10-17T18:13:16.053Z (19 days ago)
- Language: JavaScript
- Size: 3.91 KB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# blank-object
Object.create(null) turns out to be quite slow to alloc in v8, but instead if
we inherit from an ancestory with `proto = create(null)` we have nearly
the same functionallity but with dramatically faster alloc.```js
var BlankObject = require('blank-object');var bo = new BlankObject();
```This is designed for a presence check `map[key] !== undefined` since `in` is also slow like `hasOwnProperty`, `delete` and `Object.create`.
```js
function UNDEFINED() {}
export default class Map {
constructor() {
this.store = new BlankObject();
}has(key) {
return this.store[key] !== undefined;
}get(key) {
let val = this.store[key];
return val === UNDEFINED ? undefined : val;
}set(key, val) {
this.store[key] = val === undefined ? UNDEFINED : val;
}
}
```