UNPKG

@awayjs/core

Version:
48 lines (47 loc) 1.42 kB
var USE_WEAK = ('WeakRef' in self); var WeakAssetSet = /** @class */ (function () { function WeakAssetSet() { this._assets = {}; this._numAssets = 0; } 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.clear = function () { this._assets = {}; this._numAssets = 0; }; 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) { this._numAssets--; delete this._assets[key]; continue; } } callback(asset); } }; return WeakAssetSet; }()); export { WeakAssetSet };