https://github.com/mozilla/pdf.js/issues/6397#issuecomment-164954332 Would have been a lot easier to find had there been an assertion checking that string16 didn't go out of bounds of the 16bit number.

if (
      !glyph ||
      !glyph.matchesForCache(
        charcode,
        fontChar,
        unicode,
        accent,
        width,
        vmetric,
        operatorListId,
        isSpace,
        isInFont
      )
    ) {
      glyph = new Glyph(
        charcode,
        fontChar,
        unicode,
        accent,
        width,
        vmetric,
        operatorListId,
        isSpace,
        isInFont
      );
      this._glyphCache[charcode] = glyph;
    }
    return glyph;
  }
  charsToGlyphs(chars) {