mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-21 14:24:47 +08:00
Various fixes
This commit is contained in:
33
js/MultiKeyMap.js
Normal file
33
js/MultiKeyMap.js
Normal file
@@ -0,0 +1,33 @@
|
||||
import Utility from "./Utility"
|
||||
|
||||
/**
|
||||
* @template Key
|
||||
* @template Value
|
||||
*/
|
||||
export default class MultiKeyWeakMap {
|
||||
|
||||
map = new WeakMap()
|
||||
|
||||
constructor() {
|
||||
return new Proxy(this.map, this)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {WeakMap} target
|
||||
* @param {Key} p
|
||||
* @param {*} receiver
|
||||
* @returns {Value}
|
||||
*/
|
||||
get(target, p, receiver) {
|
||||
return Utility.objectGet(target, p)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {WeakMap} target
|
||||
* @param {Key} p
|
||||
* @param {Value} value
|
||||
*/
|
||||
set(target, p, value) {
|
||||
return Utility.objectSet(target, p, value, true, WeakMap)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user