function(callback, binding) {
    var proto = this.proto(),
        descs = meta(proto).descs,
        empty = {},
        property;

    for (var name in descs) {
      property = descs[name];

      if (property instanceof Ember.ComputedProperty) {
        callback.call(binding || this, name, property._meta || empty);
      }
    }
  }
function(callback, binding) {
    var proto = this.proto(),
        descs = meta(proto).descs,
        empty = {},
        property;

    for (var name in descs) {
      property = descs[name];

      if (property instanceof Ember.ComputedProperty) {
        callback.call(binding || this, name, property._meta || empty);
      }
    }
  }
function ( callback , binding ) { var proto = this . proto ( ) , descs = meta ( proto ) . descs , empty = { } , property ; for ( var name in descs ) { property = descs [ name ] ; if ( property instanceof Ember . ComputedProperty ) { callback . call ( binding || this , name , property . _meta || empty ) ; } } }
Iterate over each computed property for the class, passing its name
and any associated metadata (see `metaForProperty`) to the callback.

@method eachComputedProperty
@param {Function} callback
@param {Object} binding
Iterate over each computed property for the class passing its name and any associated metadata ( see metaForProperty ) to the callback .