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>}`)
if (value instanceof Map) {
        result = new Map();
        cloned.set(value, result); 
        for (const [key, val] of value) {
          result.set(key, cloneValue(val));
        }
        return result;
      }
      if (value instanceof Set) {
        result = new Set();
        cloned.set(value, result); 
        for (const val of value) {
          result.add(cloneValue(val));
        }
        return result;
      }
      if (value instanceof URL) {
        throw new Error(`LoopbackPort.postMessage - cannot clone: ${value}`);
      }
      result = Array.isArray(value) ? [] : Object.create(null);
      cloned.set(value, result); 
      
      
      for (const i in value) {
        let desc,
          p = value;
        while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
          p = Object.getPrototypeOf(p);
        }
        if (typeof desc.value === "undefined") {