laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
77 lines (76 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WeakObject = void 0;
const Utils_1 = require("./Utils");
const ILaya_1 = require("../../ILaya");
class WeakObject {
static __init__() {
WeakObject.I = new WeakObject();
if (!WeakObject.supportWeakMap)
ILaya_1.ILaya.systemTimer.loop(WeakObject.delInterval, null, WeakObject.clearCache);
}
static clearCache() {
for (var i = 0, n = WeakObject._maps.length; i < n; i++) {
var obj = WeakObject._maps[i];
obj._obj = {};
}
}
constructor() {
this._obj = {};
WeakObject._maps.push(this);
}
set(key, value) {
if (key == null)
return;
if (WeakObject.supportWeakMap) {
}
else {
if (typeof (key) == 'string' || typeof (key) == 'number') {
this._obj[key] = value;
}
else {
key.$_GID || (key.$_GID = Utils_1.Utils.getGID());
this._obj[key.$_GID] = value;
}
}
}
get(key) {
if (key == null)
return null;
if (WeakObject.supportWeakMap) {
}
else {
if (typeof (key) == 'string' || typeof (key) == 'number')
return this._obj[key];
return this._obj[key.$_GID];
}
}
del(key) {
if (key == null)
return;
if (WeakObject.supportWeakMap) {
}
else {
if (typeof (key) == 'string' || typeof (key) == 'number')
delete this._obj[key];
else
delete this._obj[this._obj.$_GID];
}
}
has(key) {
if (key == null)
return false;
if (WeakObject.supportWeakMap) {
return false;
}
else {
if (typeof (key) == 'string' || typeof (key) == 'number')
return this._obj[key] != null;
return this._obj[this._obj.$_GID] != null;
}
}
}
exports.WeakObject = WeakObject;
WeakObject.supportWeakMap = false;
WeakObject.delInterval = 10 * 60 * 1000;
WeakObject._maps = [];