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


**Configuration:**

- Web browser and its version: Firefox 93.0
- Operating system and its version: macOS 11.6
- PDF.js version: 2.5.207
- Is a browser extension: no

**Steps to reproduce the problem:**
1. Open the attached file in Firefox

We discovered this issue in on older version of this library, but it can be reproduced in the current version of Firefox.

**What is the expected behavior? (add screenshot)**
The file should be rendered with a linear gradient as a background:
![Bildschirmfoto 2021-10-19 um 14 34 00](https://user-images.githubusercontent.com/8649002/137910027-07947e34-700b-4692-b225-d38c36da0d37.png)


**What went wrong? (add screenshot)**
The file is rendered without any background:
![Bildschirmfoto 2021-10-19 um 14 35 05](https://user-images.githubusercontent.com/8649002/137910215-a6b8fb9e-ff95-49f0-93b4-c9f127bd49c1.png)



**Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):**
none
const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);
    let k = 0;
    const cl = new Uint8Array(3),
      cr = new Uint8Array(3);
    const c0 = colors[ci[0]],
      c1 = colors[ci[1]],
      c2 = colors[ci[2]],
      c3 = colors[ci[3]];
    const bRow = getB(splitYBy),
      bCol = getB(splitXBy);
    for (let row = 0; row <= splitYBy; row++) {
      cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;
      cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;
      cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;
      cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;
      cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;
      cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;
      for (let col = 0; col <= splitXBy; col++, k++) {
        if (
          (row === 0 || row === splitYBy) &&
          (col === 0 || col === splitXBy)
        ) {
          continue;
        }
        let x = 0,
          y = 0;
        let q = 0;
        for (let i = 0; i <= 3; i++) {
          for (let j = 0; j <= 3; j++, q++) {
            const m = bRow[row][i] * bCol[col][j];