code: function(beginIndex, endIndex) {
      var ret = [];
      var length = get(this, 'length') ;
      if (none(beginIndex)) beginIndex = 0 ;
      if (none(endIndex) || (endIndex > length)) endIndex = length ;
      while(beginIndex < endIndex) {
        ret[ret.length] = this.objectAt(beginIndex++) ;
      }
      return ret ;
    }
docs: Add any extra methods to Ember.Array that are native to the built-in Array. 
  Returns a new array that is a slice of the receiver. This implementation
  uses the observable array methods to retrieve the objects for the new
  slice.
  
  var arr = ['red', 'green', 'blue'];
  arr.slice(0);      => ['red', 'green', 'blue']
  arr.slice(0, 2);   => ['red', 'green']
  arr.slice(1, 100); => ['green', 'blue']
  
  @param beginIndex {Integer} (Optional) index to begin slicing from.
  @param endIndex {Integer} (Optional) index to end the slice at.
  @returns {Array} New array with specified slice