anchor.diff:    void _asyncPostProcessRows() {
       var dataLength = getDataLength;
       while (_postProcessFromRow <= _postProcessToRow) {
  -      var row = (vScrollDir >= 0) ? _postProcessFromRow++ : _postProcessToRow--;
  +      var row = (_vScrollDir >= 0) ? _postProcessFromRow++ : _postProcessToRow--;
         var cacheEntry = _rowsCache[row];
         if (!cacheEntry || row >= dataLength) {
           continue;
  
positive.code:       _canvas.style.width = "${_canvasWidth}px";
        _headerRow.style.width = "${_canvasWidth}px";
        _headers.style.width = "${_getHeadersWidth()}px";
        _viewportHasHScroll = (_canvasWidth > _viewportW - scrollbarDimensions.x);
      }
  
      _headerRowSpacer.style.width = "${(_canvasWidth + (_viewportHasVScroll ? scrollbarDimensions.x : 0))}px";
  
      if (_canvasWidth != oldCanvasWidth || forceColumnWidthsUpdate) {
        _applyColumnWidths();
  
negative.code:     _container = this.shadowRoot;
  
      // calculate these only once and share between grid instances
      _maxSupportedCssHeight = _maxSupportedCssHeight != null ? _maxSupportedCssHeight : _getMaxSupportedCssHeight();
      _scrollbarDimensions = _scrollbarDimensions != null ? _scrollbarDimensions : _measureScrollbar();
  
      //options = $.extend({}, defaults, options);
      _validateAndEnforceOptions();
  