[pattern.pdf](https://github.com/mozilla/pdf.js/files/4022310/pattern.pdf)

Configuration:
- Firefox Nightly 73.0a1 (2020-01-04)
- macOS Mojave 10.14.6
- PDF.js version: 2.4.254
- Is a browser extension: built-in

Steps to reproduce the problem:
1. Open the PDF, zoom in to 200% for a more detailed view

What is the expected behavior?
<img width="736" alt="pattern-acrobat" src="https://user-images.githubusercontent.com/9106997/71770714-34dc2600-2f30-11ea-958d-4fea6f2b53c2.png">

What went wrong?
<img width="563" alt="pattern-pdfjs" src="https://user-images.githubusercontent.com/9106997/71770723-4a515000-2f30-11ea-8a92-cef4cac2a8f8.png">

The crosshatch pattern is rendered by pdf.js using the wrong pattern style. The other pattern style just seem to have a broken redering.

TeX source of PDF:
```tex
\documentclass[a4paper,11pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{patterns}

\begin{document}
crosshatch pattern:
\begin{tikzpicture}
\draw[draw=black, fill=black!10, pattern=crosshatch, pattern color=black] (0,0) rectangle (1,1);
\end{tikzpicture}
\\

north east lines pattern:
\begin{tikzpicture}
\draw[draw=black, fill=black!10, pattern=north east lines, pattern color=black] (0,0) rectangle (1,1);
\end{tikzpicture}
\\

north west lines pattern:
\begin{tikzpicture}
\draw[draw=black, fill=black!10, pattern=north west lines, pattern color=black] (0,0) rectangle (1,1);
\end{tikzpicture}
\\

grid pattern:
\begin{tikzpicture}
\draw[draw=black, fill=black!10, pattern=grid, pattern color=black] (0,0) rectangle (1,1);
\end{tikzpicture}
\end{document}
```
ctx.fillStyle = pattern.getPattern(ctx, this, true);
      const inv = ctx.mozCurrentTransformInverse;
      if (inv) {
        const canvas = ctx.canvas;
        const width = canvas.width;
        const height = canvas.height;
        const bl = Util.applyTransform([0, 0], inv);
        const br = Util.applyTransform([0, height], inv);
        const ul = Util.applyTransform([width, 0], inv);
        const ur = Util.applyTransform([width, height], inv);
        const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
        const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
        const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
        const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
      } else {
        
        
        
        
        
        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
      }
      this.restore();
    }
    
    beginInlineImage() {
      unreachable("Should not call beginInlineImage");
    }
    beginImageData() {