// Original - @Gozola. // https://gist.github.com/Gozala/1269991 // This is a reimplemented version (with a few bug fixes). var createStore = require('./create-store.js'); module.exports = weakMap; function weakMap() { var privates = createStore(); return { 'get': function (key, fallback) { var store = privates(key) return store.hasOwnProperty('value') ? store.value : fallback }, 'set': function (key, value) { privates(key).value = value; return this; }, 'has': function(key) { return 'value' in privates(key); }, 'delete': function (key) { return delete privates(key).value; } } }