| 5235 | } |
| 5236 | loadAddon(e3, t3) { |
| 5237 | const i2 = { instance: t3, dispose: t3.dispose, isDisposed: false }; |
| 5238 | this._addons.push(i2), t3.dispose = () => this._wrappedAddonDispose(i2), t3.activate(e3); |
| 5239 | } |
| 5240 | _wrappedAddonDispose(e3) { |
| 5241 | if (e3.isDisposed) return; |
| 5242 | let t3 = -1; |
| 5243 | for (let i2 = 0; i2 < this._addons.length; i2++) if (this._addons[i2] === e3) { |
| 5244 | t3 = i2; |
| 5245 | break; |
| 5246 | } |
| 5247 | if (-1 === t3) throw new Error("Could not dispose an addon that has not been loaded"); |
| 5248 | e3.isDisposed = true, e3.dispose.apply(e3.instance), this._addons.splice(t3, 1); |
| 5249 | } |