UNPKG

@awayjs/core

Version:
47 lines (46 loc) 1.51 kB
var USE_WEAK = ('WeakRef' in self); var WeakAssetSet = /** @class */ (function () { function WeakAssetSet(className) { if (className === void 0) { className = 'WeakAssetSet'; } this._assets = {}; this._numAssets = 0; this._className = className; } Object.defineProperty(WeakAssetSet.prototype, "numAssets", { get: function () { return this._numAssets; }, enumerable: false, configurable: true }); WeakAssetSet.prototype.add = function (asset) { if (!asset || this._assets[asset.id]) return; this._assets[asset.id] = USE_WEAK ? new self.WeakRef(asset) : asset; this._numAssets++; }; WeakAssetSet.prototype.remove = function (asset) { if (!asset || !this._assets[asset.id]) return; this._numAssets--; delete this._assets[asset.id]; }; WeakAssetSet.prototype.forEach = function (callback) { var asset; for (var key in this._assets) { asset = this._assets[key]; if (USE_WEAK) { asset = asset.deref(); if (!asset) { console.debug('[' + this._className + '] asset was deleted by GC:', key); this._numAssets--; delete this._assets[key]; continue; } } callback(asset); } }; return WeakAssetSet; }()); export { WeakAssetSet };