concordance
Version:
Compare, format, diff and serialize any JavaScript value
25 lines (20 loc) • 403 B
JavaScript
class Registry {
constructor () {
this.counter = 0
this.map = new WeakMap()
}
has (value) {
return this.map.has(value)
}
get (value) {
return this.map.get(value).descriptor
}
alloc (value) {
const index = ++this.counter
const pointer = { descriptor: null, index }
this.map.set(value, pointer)
return pointer
}
}
module.exports = Registry