55 lines
		
	
	
		
			518 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			518 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 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; |