I'm sorry if it's a duplicate, I found lots of issues with gradients but none of the open ones looks similar.
It's apparently the PDF code `/Matrix [440 0 0 -200 20 220]` (line 44 in both files) that causes the problem.

**Configuration:**
- Web browser and its version: Chrome 54
- Operating system and its version: Windows 10
- PDF.js version: 1.6.343

**Steps to reproduce the problem:**
Open attached files:
[radial.pdf](https://github.com/mozilla/pdf.js/files/610302/radial.pdf)
[linear.pdf](https://github.com/mozilla/pdf.js/files/610300/linear.pdf)

**What is the expected behavior?** (Adobe Reader 11)
![image](https://cloud.githubusercontent.com/assets/17966696/20583379/fa80d780-b1f1-11e6-85d2-62dd6970a08c.png)

**What went wrong?** (mozilla.github.io/pdf.js/web/viewer.html)
Gradients aren't correctly transformed
![image](https://cloud.githubusercontent.com/assets/17966696/20583361/cf5bb8a4-b1f1-11e6-9479-9cc606b41187.png)

this.ctx.closePath();
    }
    stroke(consumePath) {
      consumePath = typeof consumePath !== "undefined" ? consumePath : true;
      const ctx = this.ctx;
      const strokeColor = this.current.strokeColor;
      
      
      ctx.globalAlpha = this.current.strokeAlpha;
      if (this.contentVisible) {
        if (typeof strokeColor === "object" && strokeColor?.getPattern) {
          
          
          ctx.save();
          
          
          
          
          const transform = ctx.mozCurrentTransform;
          const scale = Util.singularValueDecompose2dScale(transform)[0];
          ctx.strokeStyle = strokeColor.getPattern(ctx, this);
          const lineWidth = this.getSinglePixelWidth();
          const scaledLineWidth = this.current.lineWidth * scale;
          if (lineWidth < 0 && -lineWidth >= scaledLineWidth) {
            ctx.resetTransform();
            ctx.lineWidth = Math.round(this._combinedScaleFactor);
          } else {
            ctx.lineWidth = Math.max(lineWidth, scaledLineWidth);
          }