DataMap.js 518 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. class DataMap {
  2. constructor() {
  3. this.data = new WeakMap();
  4. }
  5. get( object ) {
  6. let map = this.data.get( object );
  7. if ( map === undefined ) {
  8. map = {};
  9. this.data.set( object, map );
  10. }
  11. return map;
  12. }
  13. delete( object ) {
  14. let map;
  15. if ( this.data.has( object ) ) {
  16. map = this.data.get( object );
  17. this.data.delete( object );
  18. }
  19. return map;
  20. }
  21. has( object ) {
  22. return this.data.has( object );
  23. }
  24. dispose() {
  25. this.data = new WeakMap();
  26. }
  27. }
  28. export default DataMap;