You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
518 B
55 lines
518 B
6 months ago
|
class DataMap {
|
||
|
|
||
|
constructor() {
|
||
|
|
||
|
this.data = new WeakMap();
|
||
|
|
||
|
}
|
||
|
|
||
|
get( object ) {
|
||
|
|
||
|
let map = this.data.get( object );
|
||
|
|
||
|
if ( map === undefined ) {
|
||
|
|
||
|
map = {};
|
||
|
this.data.set( object, map );
|
||
|
|
||
|
}
|
||
|
|
||
|
return map;
|
||
|
|
||
|
}
|
||
|
|
||
|
delete( object ) {
|
||
|
|
||
|
let map;
|
||
|
|
||
|
if ( this.data.has( object ) ) {
|
||
|
|
||
|
map = this.data.get( object );
|
||
|
|
||
|
this.data.delete( object );
|
||
|
|
||
|
}
|
||
|
|
||
|
return map;
|
||
|
|
||
|
}
|
||
|
|
||
|
has( object ) {
|
||
|
|
||
|
return this.data.has( object );
|
||
|
|
||
|
}
|
||
|
|
||
|
dispose() {
|
||
|
|
||
|
this.data = new WeakMap();
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
export default DataMap;
|