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>}`)
constructor() {
    this._listeners = [];
    this._deferred = Promise.resolve(undefined);
  }
  postMessage(obj, transfers) {
    function cloneValue(value) {
      
      
      if (typeof value !== "object" || value === null) {
        return value;
      }
      if (cloned.has(value)) {
        
        return cloned.get(value);
      }
      let buffer, result;
      if ((buffer = value.buffer) && isArrayBuffer(buffer)) {
        
        if (transfers?.includes(buffer)) {
          result = new value.constructor(
            buffer,
            value.byteOffset,
            value.byteLength
          );
        } else {
          result = new value.constructor(value);
        }
        cloned.set(value, result);
        return result;
      }