code: function (prop, callback) {
              if (Crafty.support.setter) {
                  this.__defineSetter__(prop, callback);
              } else if (Crafty.support.defineProperty) {
                  Object.defineProperty(this, prop, {
                      set: callback,
                      configurable: true
                  });
              } else {
                  noSetter.push({
                      prop: prop,
                      obj: this,
                      fn: callback
                  });
              }
              return this;
          }
docs: @
  #.setter
  @comp Crafty Core
  @sign public this .setter(String property, Function callback)
  @param property - Property to watch for modification
  @param callback - Method to execute if the property is modified
  Will watch a property waiting for modification and will then invoke the
  given callback when attempting to modify.
  
  *Note: Support in IE<9 is slightly different. The method will be executed
  after the property has been set*