Now, it computes the numbers with only basic arithmetic operations, without first creating a string and then calling parseFloat.
The new function doesn't behave exactly the same as the old one.
In particular, the old behaviour was that when there was a number immediatly followed by an 'E', the 'E' was consumed. Now it's not. It allows for "glued" numbers and operators.
Also, the new function is faster and consumes less memory.
Do not throw exception when hex strings are in the wrong format
Currently pdf.js is throwing an exception for the following hex string:
`<7 0 2 15 5 2 2 2 4 3 2 4>`
The issue is that the 15 is not a valid hex character so pdf.js ends up
throwing an exception.
This diff changes the parser to process the above hex string as follow:
`70 21 55 2 24 32` (Note: the final 4 of the hex string is ignored)
replicating the behaviour of MuPDF, and doesn't throw an exception.