code: function(clientWidth, clientHeight, contentWidth, contentHeight) {
        var self = this;
  
        if (!clientWidth && !clientHeight && !contentWidth && !contentHeight) {
          // this scrollview isn't rendered, don't bother
          return;
        }
  
        // Only update values which are defined
        if (clientWidth === +clientWidth) {
          self.__clientWidth = clientWidth;
        }
  
        if (clientHeight === +clientHeight) {
          self.__clientHeight = clientHeight;
        }
  
        if (contentWidth === +contentWidth) {
          self.__contentWidth = contentWidth;
        }
  
        if (contentHeight === +contentHeight) {
          self.__contentHeight = contentHeight;
        }
  
        // Refresh maximums
        self.__computeScrollMax();
      }
docs: Configures the dimensions of the client (outer) and content (inner) elements.
  Requires the available space for the outer element and the outer size of the inner element.
  All values which are falsy (null or zero etc.) are ignored and the old value is kept.
  
  @param clientWidth {Integer} Inner width of outer element
  @param clientHeight {Integer} Inner height of outer element
  @param contentWidth {Integer} Outer width of inner element
  @param contentHeight {Integer} Outer height of inner element