Attach (recommended) or Link to PDF file here:
[compressed.tracemonkey-pldi-09.pdf](https://github.com/mozilla/pdf.js/files/7846269/compressed.tracemonkey-pldi-09.pdf)


Configuration:
- Web browser and its version: chrome v97.0.4692.7
- Operating system and its version: macOS 10.15.7
- PDF.js version: 2.12.313
- Is a browser extension: no

Steps to reproduce the problem:
1. https://github.com/mozilla/pdf.js/blob/236c8d47864e8ebf593bae21576670b59a7d4988/src/display/base_factory.js#L146-L149
2. https://github.com/mozilla/pdf.js/blob/236c8d47864e8ebf593bae21576670b59a7d4988/src/display/annotation_layer.js#L2073-L2081
3. As in the code above, sometimes 'data.rect' is '[0,0,0,0]', which causes 'this.svgFactory.create' to throw an error, which makes the following for loop stop working. https://github.com/mozilla/pdf.js/blob/236c8d47864e8ebf593bae21576670b59a7d4988/src/display/annotation_layer.js#L2352-L2371


element.addEventListener("blur", blurListener);
      }
      if (this.data.maxLen !== null) {
        element.maxLength = this.data.maxLen;
      }
      if (this.data.comb) {
        const fieldWidth = this.data.rect[2] - this.data.rect[0];
        const combWidth = fieldWidth / this.data.maxLen;
        element.classList.add("comb");
        element.style.letterSpacing = `calc(${combWidth}px - 1ch)`;
      }
    } else {
      element = document.createElement("div");
      element.textContent = this.data.fieldValue;
      element.style.verticalAlign = "middle";
      element.style.display = "table-cell";
    }
    this._setTextStyle(element);
    this._setBackgroundColor(element);
    this.container.appendChild(element);
    return this.container;
  }
  /**
   * Apply text styles to the text in the element.
   *
   * @private
   * @param {HTMLDivElement} element
   * @memberof TextWidgetAnnotationElement
   */
  _setTextStyle(element) {