whole_func_string: function VirtualRepeatModelArrayLike(model) {
    if (!angular.isFunction(model.getItemAtIndex) ||
        !angular.isFunction(model.getLength)) {
      throw Error('When md-on-demand is enabled, the Object passed to md-virtual-repeat must implement ' +
          'functions getItemAtIndex() and getLength() ');
    }
  
    this.model = model;
  }
func_code_string: function VirtualRepeatModelArrayLike(model) {
    if (!angular.isFunction(model.getItemAtIndex) ||
        !angular.isFunction(model.getLength)) {
      throw Error('When md-on-demand is enabled, the Object passed to md-virtual-repeat must implement ' +
          'functions getItemAtIndex() and getLength() ');
    }
  
    this.model = model;
  }
func_documentation_string: This VirtualRepeatModelArrayLike class enforces the interface requirements
  for infinite scrolling within a mdVirtualRepeatContainer. An object with this
  interface must implement the following interface with two (2) methods:
  
  getItemAtIndex: function(index) -> item at that index or null if it is not yet
  loaded (It should start downloading the item in that case).
  
  getLength: function() -> number The data legnth to which the repeater container
  should be sized. Ideally, when the count is known, this method should return it.
  Otherwise, return a higher number than the currently loaded items to produce an
  infinite-scroll behavior.
  
  @usage
  <hljs lang="html">
  <md-virtual-repeat-container md-orient-horizontal>
  <div md-virtual-repeat="i in items" md-on-demand>
  Hello {{i}}!
  </div>
  </md-virtual-repeat-container>
  </hljs>