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

Configuration:
- Web browser and its version: Firefox 118.0.2
- Operating system and its version: Windows 10 Pro 10.0.19045
- PDF.js version: 3.10.86
- Is a browser extension: No

Steps to reproduce the problem:
1. Open the PDF in Firefox.

What is the expected behavior? (add screenshot)
When I open the PDF in Google Chrome or Adobe Acrobat, it looks like this:
![after](https://github.com/mozilla/pdf.js/assets/138867750/6a76ca25-f82a-4041-9d03-2edb36cecfa6)

What went wrong? (add screenshot)
Instead, it looks like this:
![before](https://github.com/mozilla/pdf.js/assets/138867750/4b7789df-56e2-49f4-b0b9-82c22ca6bcaa)

ctx.fillText(chars.join(""), 0, 0);
      current.x += width * widthAdvanceScale * textHScale;
      ctx.restore();
      this.compose();
      return undefined;
    }
    let x = 0,
      i;
    for (i = 0; i < glyphsLength; ++i) {
      const glyph = glyphs[i];
      if (typeof glyph === "number") {
        x += (spacingDir * glyph * fontSize) / 1000;
        continue;
      }
      let restoreNeeded = false;
      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
      const character = glyph.fontChar;
      const accent = glyph.accent;
      let scaledX, scaledY;
      let width = glyph.width;
      if (vertical) {
        const vmetric = glyph.vmetric || defaultVMetrics;
        const vx =
          -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;
        const vy = vmetric[2] * widthAdvanceScale;
        width = vmetric ? -vmetric[0] : width;
        scaledX = vx / fontSizeScale;
        scaledY = (x + vy) / fontSizeScale;
      } else {
        scaledX = x / fontSizeScale;