code: function() {
      if (Ember.Freezable && Ember.Freezable.detect(this)) {
        return get(this, 'isFrozen') ? this : this.copy().freeze();
      } else {
        throw new Error(Ember.String.fmt("%@ does not support freezing", [this]));
      }
    }
docs: If the object implements `Ember.Freezable`, then this will return a new
  copy if the object is not frozen and the receiver if the object is frozen.
  
  Raises an exception if you try to call this method on a object that does
  not support freezing.
  
  You should use this method whenever you want a copy of a freezable object
  since a freezable object can simply return itself without actually
  consuming more memory.
  
  @method frozenCopy
  @return {Object} copy of receiver or receiver