code: function uniqBy(dependentKey, propertyKey) {
      return _emberMetalComputed.computed(dependentKey + '.[]', function () {
        var uniq = _emberRuntimeSystemNative_array.A();
        var seen = new _emberMetalEmpty_object.default();
        var list = _emberMetalProperty_get.get(this, dependentKey);
        if (_emberRuntimeUtils.isArray(list)) {
          list.forEach(function (item) {
            var guid = _emberMetalUtils.guidFor(_emberMetalProperty_get.get(item, propertyKey));
            if (!(guid in seen)) {
              seen[guid] = true;
              uniq.push(item);
            }
          });
        }
        return uniq;
      }).readOnly();
    }
docs: A computed property which returns a new array with all the unique
  elements from an array, with uniqueness determined by specific key.
  Example
  ```javascript
  var Hamster = Ember.Object.extend({
  uniqueFruits: Ember.computed.uniqBy('fruits', 'id')
  });
  var hamster = Hamster.create({
  fruits: [
  { id: 1, 'banana' },
  { id: 2, 'grape' },
  { id: 3, 'peach' },
  { id: 1, 'banana' }
  ]
  });
  hamster.get('uniqueFruits'); // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
  ```
  @method uniqBy
  @for Ember.computed
  @param {String} dependentKey
  @param {String} propertyKey
  @return {Ember.ComputedProperty} computes a new array with all the
  unique elements from the dependent array
  @public