https://github.com/mozilla/pdf.js/blob/0df1a5661958df0c4ed2f73b0f3266d825c5c280/src/display/api.js#L710-L719
The return type signature `@returns {Promise<{num: number, gen: number}>}` is mismatched with its definition. (should be `@returns {Promise<number>}`)
continue;
        }
        if (typeof desc.value === "function") {
          if (value.hasOwnProperty?.(i)) {
            throw new Error(
              `LoopbackPort.postMessage - cannot clone: ${value[i]}`
            );
          }
          continue;
        }
        result[i] = cloneValue(desc.value);
      }
      return result;
    }
    const cloned = new WeakMap();
    const event = { data: cloneValue(obj) };
    this._deferred.then(() => {
      for (const listener of this._listeners) {
        listener.call(this, event);
      }
    });
  }
  addEventListener(name, listener) {
    this._listeners.push(listener);
  }
  removeEventListener(name, listener) {
    const i = this._listeners.indexOf(listener);
    this._listeners.splice(i, 1);
  }
  terminate() {