Do we really need to have a testImageData object for each tile layer renderer instance? Can't we make testCanvasSize a static function instead, and cache the testImageData in a closure?

```js
ol.renderer.canvas.Layer.testCanvasSize = (function() {
  /**
   * @type {ImageData}
   */
  var testImageData = null;

  return
      /**
       * @param {CanvasRenderingContext2D} context Context.
       * @param {ol.Size} size Size.
       * @return {boolean} True when the canvas with the current size does not exceed
       *     the maximum dimensions.
       */
      function(context, size) {
        //...
        if (goog.isNull(testImageData)) {
          testImageData = ...
        }
        //...
      };
})();
```

In this way tile layer renderers share the testImageData object.

Would that work?