function(key) {
    var meta = this.proto()[META_KEY],
        desc = meta && meta.descs[key];

    Ember.assert("metaForProperty() could not find a computed property with key '"+key+"'.", !!desc && desc instanceof Ember.ComputedProperty);
    return desc._meta || {};
  }
function(key) {
    var meta = this.proto()[META_KEY],
        desc = meta && meta.descs[key];

    Ember.assert("metaForProperty() could not find a computed property with key '"+key+"'.", !!desc && desc instanceof Ember.ComputedProperty);
    return desc._meta || {};
  }
function ( key ) { var meta = this . proto ( ) [ META_KEY ] , desc = meta && meta . descs [ key ] ; Ember . assert ( "metaForProperty() could not find a computed property with key '" + key + "'." , ! ! desc && desc instanceof Ember . ComputedProperty ) ; return desc . _meta || { } ; }
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()`.

@method metaForProperty
@param key {String} property name
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 .