code: function (key) {
        var proto = this.proto();
        var possibleDesc = proto[key];
        var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
  
        _emberMetalDebug.assert('metaForProperty() could not find a computed property ' + 'with key \'' + key + '\'.', !!desc && desc instanceof _emberMetalComputed.ComputedProperty);
        return desc._meta || {};
      }
docs: In some cases, you may want to annotate computed properties with additional
  metadata about how they function or what values they operate on. For
  example, computed property functions may close over variables that are then
  no longer available for introspection.
  You can pass a hash of these values to a computed property like this:
  ```javascript
  person: function() {
  var personId = this.get('personId');
  return App.Person.create({ id: personId });
  }.property().meta({ type: App.Person })
  ```
  Once you've done this, you can retrieve the values saved to the computed
  property from your class like this:
  ```javascript
  MyClass.metaForProperty('person');
  ```
  This will return the original hash that was passed to `meta()`.
  @static
  @method metaForProperty
  @param key {String} property name
  @private