Attach (recommended) or Link to PDF file here [(PDF in comments below)](https://github.com/mozilla/pdf.js/issues/10900#issuecomment-501034146).  Here is a relevant section:

![image](https://user-images.githubusercontent.com/16158417/59306620-a8ec6f00-8c6a-11e9-9c2e-056bfeebc050.png)

Configuration:
- Web browser and its version: Node v10.11.0
- Operating system and its version: MacOS 10.14.5
- PDF.js version: v2.1.266
- Is a browser extension: No

Steps to reproduce the problem:
1. Calling `getTextContent` on the page is returning inappropriate widths for text items with appended with spaces.

What is the expected behavior?
The expected behavior is that the coordinates for the string "3" are above the coordinates for the string "27.0" coordinates PLUS the width of the "27.0" string.  This should make sense as the numbers are on top of each other.

What went wrong?
![image](https://user-images.githubusercontent.com/16158417/59306769-0680bb80-8c6b-11e9-972c-cb964ca4299f.png)

Unfortunately, the width is calculated wrong and "27.0" has a width of `2.17...` which does not make sense in this context.  The string "3" also has a width of `2.15...` which means that these two strings are off by `.02...` units which is not the case.

I dug into the source code of pdfjs and found commenting out [this line](https://github.com/mozilla/pdf.js/blob/c8c937c2579812798fddc13af9d8c1df1e7ce30b/src/core/evaluator.js#L1657) resolved the issue for me.  I bet this line is necessary though, so would like to start an investigation (happy to help!) into what calculations are going wrong to cause this wrongly reported width.
Util,
} from "../shared/util.js";
/**
 * Text layer render parameters.
 *
 * @typedef {Object} TextLayerRenderParameters
 * @property {import("./api").TextContent} [textContent] - Text content to
 *   render (the object is returned by the page's `getTextContent` method).
 * @property {ReadableStream} [textContentStream] - Text content stream to
 *   render (the stream is returned by the page's `streamTextContent` method).
 * @property {HTMLElement} container - HTML element that will contain text runs.
 * @property {import("./display_utils").PageViewport} viewport - The target
 *   viewport to properly layout the text runs.
 * @property {Array<HTMLElement>} [textDivs] - HTML elements that are correspond
 *   to the text items of the textContent input. This is output and shall be
 *   initially be set to empty array.
 * @property {Array<string>} [textContentItemsStr] - Strings that correspond to
 *    the `str` property of the text items of textContent input. This is output
 *   and shall be initially be set to empty array.
 * @property {number} [timeout] - Delay in milliseconds before rendering of the
 *   text runs occurs.
 * @property {boolean} [enhanceTextSelection] - Whether to turn on the text
 *   selection enhancement.
 */
const MAX_TEXT_DIVS_TO_RENDER = 100000;
const DEFAULT_FONT_SIZE = 30;
const DEFAULT_FONT_ASCENT = 0.8;
const ascentCache = new Map();
const AllWhitespaceRegexp = /^\s+$/g;
function getAscent(fontFamily, ctx) {