Ext.define('Ext.scroll.TableScroller', {
    extend: 'Ext.scroll.Scroller',
    alias: 'scroller.table',
 
    config: {
        lockingScroller: null
    },
 
    privates: {
        getScrollIntoViewXY: function(el, hscroll) {
            var lockingScroller = this.getLockingScroller(),
                position = this.getPosition(),
                newPosition;
        
            newPosition = Ext.fly(el).getScrollIntoViewXY(this.getElement(), position.x, position.y);
            newPosition.x = (hscroll === false) ? position.x : newPosition.x;
            if (lockingScroller) {
                newPosition.y = Ext.fly(el).getScrollIntoViewXY(lockingScroller.getElement(), position.x, position.y).y;
            }
            return newPosition;
        },
 
        doScrollTo: function(x, y, animate) {
            var lockingScroller,
                lockedPromise,
                ret;
 
            if (!= null) {
                lockingScroller = this.getLockingScroller();
 
                if (lockingScroller) {
                    lockedPromise = lockingScroller.doScrollTo(null, y, animate);
                    y = null;
                }
            }
 
            ret = this.callParent([x, y, animate]);
 
            if (lockedPromise) {
                ret = Ext.Promise.all([ret, lockedPromise]);
            }
            return ret;
        }
    }
 
});