Attach (recommended) or Link to PDF file here: [RenderIssue.pdf](https://github.com/mozilla/pdf.js/files/7583657/RenderIssue.pdf)

Configuration:
- Web browser and its version: Chrome Version 96.0.4664.45 (Official Build) (64-bit)
- Operating system and its version: Windows 10 Version 10.0.19042

- PDF.js version: v2.12.201 (If this looks incorrect, please take it from the URL)
- Is a browser extension: No, using https://mozilla.github.io/pdf.js/web/viewer.html

Steps to reproduce the problem:
1. Visit https://mozilla.github.io/pdf.js/web/viewer.html
2. Drop the attached PDF on to the page - [RenderIssue.pdf](https://github.com/mozilla/pdf.js/files/7583657/RenderIssue.pdf)

What is the expected behavior? It should appear as in Adobe Reader - 
![image](https://user-images.githubusercontent.com/94864394/142921185-1ee7034b-1db9-4b6d-ae08-4a9cb4426d70.png)

What went wrong? Some text is blank - 
![image](https://user-images.githubusercontent.com/94864394/142921086-a5ad3ad7-caac-40d8-92d3-684d59aee1f5.png)

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension): N/A

let k;
    if (y < y1) {
      k = 0;
    } else if (y > y3) {
      k = 1;
    } else {
      k = (y1 - y) / (y1 - y3);
    }
    xb = x1 - (x1 - x3) * k;
    cbr = c1r - (c1r - c3r) * k;
    cbg = c1g - (c1g - c3g) * k;
    cbb = c1b - (c1b - c3b) * k;
    const x1_ = Math.round(Math.min(xa, xb));
    const x2_ = Math.round(Math.max(xa, xb));
    let j = rowSize * y + x1_ * 4;
    for (let x = x1_; x <= x2_; x++) {
      k = (xa - x) / (xa - xb);
      if (k < 0) {
        k = 0;
      } else if (k > 1) {
        k = 1;
      }
      bytes[j++] = (car - (car - cbr) * k) | 0;
      bytes[j++] = (cag - (cag - cbg) * k) | 0;
      bytes[j++] = (cab - (cab - cbb) * k) | 0;
      bytes[j++] = 255;
    }
  }
}
function drawFigure(data, figure, context) {