Re-factor the LoopbackPort class to use *proper* private fields

This commit is contained in:
Jonas Jenwald 2022-09-23 13:25:15 +02:00
parent 7404091787
commit 499610779e

View File

@ -1853,34 +1853,33 @@ class PDFPageProxy {
} }
class LoopbackPort { class LoopbackPort {
constructor() { #listeners = [];
this._listeners = [];
this._deferred = Promise.resolve(); #deferred = Promise.resolve();
}
postMessage(obj, transfers) { postMessage(obj, transfers) {
const event = { const event = {
data: structuredClone(obj, transfers), data: structuredClone(obj, transfers),
}; };
this._deferred.then(() => { this.#deferred.then(() => {
for (const listener of this._listeners) { for (const listener of this.#listeners) {
listener.call(this, event); listener.call(this, event);
} }
}); });
} }
addEventListener(name, listener) { addEventListener(name, listener) {
this._listeners.push(listener); this.#listeners.push(listener);
} }
removeEventListener(name, listener) { removeEventListener(name, listener) {
const i = this._listeners.indexOf(listener); const i = this.#listeners.indexOf(listener);
this._listeners.splice(i, 1); this.#listeners.splice(i, 1);
} }
terminate() { terminate() {
this._listeners.length = 0; this.#listeners.length = 0;
} }
} }