diff --git a/src/hls.ts b/src/hls.ts index 1996c466121..643672669f6 100644 --- a/src/hls.ts +++ b/src/hls.ts @@ -40,7 +40,7 @@ export default class Hls implements HlsEventEmitter { public readonly userConfig: Partial; private coreComponents: ComponentAPI[]; - private networkControllers: NetworkComponentAPI[] | undefined; + private networkControllers: NetworkComponentAPI[]; private _emitter: HlsEventEmitter = new EventEmitter(); private _autoLevelCapping: number; @@ -282,15 +282,12 @@ export default class Hls implements HlsEventEmitter { this.removeAllListeners(); this._autoLevelCapping = -1; this.url = null; - if (this.networkControllers) { - this.networkControllers.forEach((component) => component.destroy()); - this.networkControllers = undefined; - } - if (this.coreComponents) { - this.coreComponents.forEach((component) => component.destroy()); - // @ts-ignore - this.coreComponents = null; - } + + this.networkControllers.forEach((component) => component.destroy()); + this.networkControllers.length = 0; + + this.coreComponents.forEach((component) => component.destroy()); + this.coreComponents.length = 0; } /** @@ -341,9 +338,6 @@ export default class Hls implements HlsEventEmitter { */ startLoad(startPosition: number = -1) { logger.log(`startLoad(${startPosition})`); - if (!this.networkControllers) { - throw new Error('Cannot call `startLoad()` on destroyed instance of hls'); - } this.networkControllers.forEach((controller) => { controller.startLoad(startPosition); }); @@ -354,11 +348,9 @@ export default class Hls implements HlsEventEmitter { */ stopLoad() { logger.log('stopLoad'); - if (this.networkControllers) { - this.networkControllers.forEach((controller) => { - controller.stopLoad(); - }); - } + this.networkControllers.forEach((controller) => { + controller.stopLoad(); + }); } /**