function invalidateAllRows() {
      if (currentEditor) {
        assert(getEditorLock().isActive());

        makeActiveCellNormal();
        
        assert(!currentEditor);
        assert(!getEditorLock().isActive());
      }

      // for (var row = rowsCacheStartIndex, endrow = rowsCache.length; row < endrow; row++) {
      //   if (rowsCache[row]) {
      //     removeRowFromCache(row);
      //   }
      // }
      // rowsCache = [];
      
      // flag all cached cells as dirty:
      for (var row = rowsCacheStartIndex, len = rowsCache.length; row < len; row++) {
        var cacheEntry = rowsCache[row];
        if (!cacheEntry) {
          continue;
        }
        var cellNodes = cacheEntry.cellNodesByColumnIdx;
        var dirtyFlaggingArray = cacheEntry.dirtyCellNodes;
        for (var cell = cacheEntry.cellNodesByColumnStart, colCount = cellNodes.length; cell < colCount; cell++) {
          if (cellNodes[cell] && !dirtyFlaggingArray[cell]) {
            dirtyFlaggingArray[cell] = true;
            assert(cacheEntry.isDirty >= 0);
            cacheEntry.isDirty++;
          }
        }
      }

      rowPositionCache = [];
      // rowsCacheStartIndex = MAX_INT;
    }
// This removes rows from cache. Would be needed if we were changing rows.
This removes rows from cache. Would be needed if we were changing rows.
This removes rows from cache . Would be needed if we were changing rows .
function invalidateAllRows() {
      if (currentEditor) {
        assert(getEditorLock().isActive());
        makeActiveCellNormal();
        assert(!currentEditor);
        assert(!getEditorLock().isActive());
      }
      for (var row = rowsCacheStartIndex, len = rowsCache.length; row < len; row++) {
        var cacheEntry = rowsCache[row];
        if (!cacheEntry) {
          continue;
        }
        var cellNodes = cacheEntry.cellNodesByColumnIdx;
        var dirtyFlaggingArray = cacheEntry.dirtyCellNodes;
        for (var cell = cacheEntry.cellNodesByColumnStart, colCount = cellNodes.length; cell < colCount; cell++) {
          if (cellNodes[cell] && !dirtyFlaggingArray[cell]) {
            dirtyFlaggingArray[cell] = true;
            assert(cacheEntry.isDirty >= 0);
            cacheEntry.isDirty++;
          }
        }
      }
      rowPositionCache = [];
    }
function invalidateAllRows ( ) { if ( currentEditor ) { assert ( getEditorLock ( ) . isActive ( ) ) ; makeActiveCellNormal ( ) ; assert ( ! currentEditor ) ; assert ( ! getEditorLock ( ) . isActive ( ) ) ; } for ( var row = rowsCacheStartIndex , len = rowsCache . length ; row < len ; row ++ ) { var cacheEntry = rowsCache [ row ] ; if ( ! cacheEntry ) { continue ; } var cellNodes = cacheEntry . cellNodesByColumnIdx ; var dirtyFlaggingArray = cacheEntry . dirtyCellNodes ; for ( var cell = cacheEntry . cellNodesByColumnStart , colCount = cellNodes . length ; cell < colCount ; cell ++ ) { if ( cellNodes [ cell ] && ! dirtyFlaggingArray [ cell ] ) { dirtyFlaggingArray [ cell ] = true ; assert ( cacheEntry . isDirty >= 0 ) ; cacheEntry . isDirty ++ ; } } } rowPositionCache = [ ] ; }
This removes rows from cache.
This removes rows from cache .
// for (var row = rowsCacheStartIndex, endrow = rowsCache.length; row < endrow; row++) { //   if (rowsCache[row]) { //     removeRowFromCache(row); //   } // } // rowsCache = []; // flag all cached cells as dirty: // rowsCacheStartIndex = MAX_INT;