Use strict equalities in test/driver.js
Use strict equalities in test/unit/{function_spec, stream_spec, testreporter}.js
Improving CanvasPixelArray polyfill for Android
Memory optimzation for constructPath
Added units for lengths
A few small optimizations for CIDFontType2 fonts

Cache a constant length and replace one usage of |in| with a comparison against undefined.
A few small optimizations of adjustMapping

Replace a couple of |in| checks with comparisons against undefined.
[CIDFontType2] Map characters missing in toUnicode to the private use area (bug 1028735 and issue 4881)
Improve how DecodeStream handles empty buffers.

DecodeStream currently initializes its |buffer| field to |null|, which
is reasonable, because lots of DecodeStreams never need to instantiate a
buffer. But this requires various special cases in the code.

This patch change it so DecodeStreamClosure has a single empty
Uint8Array which gets shared between all buffers upon initialization.
This avoids the special cases.

DecodeStream.prototype.ensureBuffer() is really hot, and this removes a
test from the fast path. For one 226 page scanned document this sped up
rendering by about 2%.
In the reftest analyzer, make it possible to toggle "Circle differences" with the D key

It's currently possible to step through the test results using the <kbd>N</kbd> and <kbd>P</kbd> keys, and you can also switch between test and reference images with the <kbd>T</kbd> key.
However if you want to highlight the differences, that can only be done by clicking. This has always annoyed me somewhat, so this patch adds support for toggling the differences view with the <kbd>D</kbd> key.
Avoid creating intermediate strings in Util.makeCssRgb().

On one example (the Wuppertal map) this avoids the creation of over
230,000 intermediate strings.
Zero the height and width of the WebGL canvases on cleanup
Faster chunkedStream_getByte()
use getBytes() instead of looping over getByte()
Fixes mesh fill pattern with optional matrix (#5020)

In the referenced issue, there is a PDF which uses a fill pattern which does not
have a matrix defined. This causes singularValueDecompose2dScale to fail with
undefined property error when accessing elements of that matrix.

This fix will only use the matrix when it is defined. The output for the PDF in
question now looks identical to chrome and preview with respect to the gradient
fill pattern.
Adjust the tabindices in the viewer

The current way that the tabindices are defined, has the unfortunate consequence that adding a single button to the UI might mean having to change almost all tabindices. (This was the case in e.g. PR 4329.)

This patch attempts to avoid that situation happening again, by re-defining the tabindices slightly.
Add |fillRgb| method to LabCS
Prevent CMapFactory.create from failing by passing the necessary parameters from PartialEvaluator_readToUnicode (issue 5010)
Adds ImageData set support for legacy safari
Revert commit fc73e2e (PR 5005) for breaking certain PDF files