code: function() {
          var buffer = this.buffer + 1;
          while(true) {
              var tlTile = this.grid[0][0];
              var tlViewPort = {
                  x: tlTile.position.x +
                      this.map.layerContainerOriginPx.x,
                  y: tlTile.position.y +
                      this.map.layerContainerOriginPx.y
              };
              var ratio = this.getServerResolution() / this.map.getResolution();
              var tileSize = {
                  w: Math.round(this.tileSize.w * ratio),
                  h: Math.round(this.tileSize.h * ratio)
              };
              if (tlViewPort.x > -tileSize.w * (buffer - 1)) {
                  this.shiftColumn(true, tileSize);
              } else if (tlViewPort.x < -tileSize.w * buffer) {
                  this.shiftColumn(false, tileSize);
              } else if (tlViewPort.y > -tileSize.h * (buffer - 1)) {
                  this.shiftRow(true, tileSize);
              } else if (tlViewPort.y < -tileSize.h * buffer) {
                  this.shiftRow(false, tileSize);
              } else {
                  break;
              }
          }
      }
docs: Method: moveGriddedTiles