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

Configuration:
- Web browser and its version: Firefox 57.0
- Operating system and its version: Debian GNU/Linux 9 64-bit
- PDF.js version: tried with Firefox's 1.9.583 and with online viewer 2.0.185
- Is a browser extension: no

Steps to reproduce the problem:
1. Open the attached file with the online viewer https://mozilla.github.io/pdf.js/web/viewer.html

What is the expected behavior? (add screenshot)
![image](https://user-images.githubusercontent.com/11061462/33626267-d9a57dee-d9d8-11e7-8712-cfa17c038259.png)
(Image captured from Adobe Reader CS.) The shading needs to be inside the letters.

What went wrong? (add screenshot)
![image](https://user-images.githubusercontent.com/11061462/33626285-eaabd462-d9d8-11e7-94e2-96480b57750d.png)
The shading seems to be displaced and upside-down, for it does not cover all the characters of the word.

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

if (isNum(glyph)) {
        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;
        scaledY = 0;
      }
      if (font.remeasure && width > 0) {
        
        
        
        const measuredWidth =
          ((ctx.measureText(character).width * 1000) / fontSize) *
          fontSizeScale;
        if (width < measuredWidth && this.isFontSubpixelAAEnabled) {