code: function (value) {
        if (!this.contains(value)) {
          return this; // nothing to do
        }
  
        var ret = emberA();
  
        this.forEach(function (k) {
          if (k !== value) {
            ret[ret.length] = k;
          }
        });
  
        return ret;
      }
docs: Returns a new enumerable that excludes the passed value. The default
  implementation returns an array regardless of the receiver type unless
  the receiver does not contain the value.
  ```javascript
  var arr = ['a', 'b', 'a', 'c'];
  arr.without('a');  // ['b', 'c']
  ```
  @method without
  @param {Object} value
  @return {Ember.Enumerable}
  @public