whole_func_string: function(name, mixinClass) {
              var me = this,
                  mixin = mixinClass.prototype,
                  prototype = me.prototype,
                  key, statics, i, ln, staticName,
                  mixinValue, hookKey, hookFunction;
  
              if (typeof mixin.onClassMixedIn != 'undefined') {
                  mixin.onClassMixedIn.call(mixinClass, me);
              }
  
              if (!prototype.hasOwnProperty('mixins')) {
                  if ('mixins' in prototype) {
                      prototype.mixins = Ext.Object.chain(prototype.mixins);
                  }
                  else {
                      prototype.mixins = {};
                  }
              }
  
              for (key in mixin) {
                  mixinValue = mixin[key];
                  if (key === 'mixins') {
                      Ext.merge(prototype.mixins, mixinValue);
                  }
                  else if (key === 'xhooks') {
                      for (hookKey in mixinValue) {
                          hookFunction = mixinValue[hookKey];
  
                          // Mixed in xhook methods cannot call a parent.
                          hookFunction.$previous = Ext.emptyFn;
  
                          if (prototype.hasOwnProperty(hookKey)) {
  
                              // Pass the hook function, and the existing function which it is to underride.
                              // The existing function has its $previous pointer replaced by a closure
                              // which calls the hookFunction and then the existing function's original $previous
                              hookFunctionFactory(hookFunction, prototype[hookKey], hookKey, me);
                          } else {
                              // There's no original function, so generate an implementation which calls
                              // the hook function. It will not get any $previous pointer.
                              prototype[hookKey] = hookFunctionFactory(hookFunction, null, hookKey, me);
                          }
                      }
                  }
                  else if (!(key === 'mixinId' || key === 'config') && (prototype[key] === undefined)) {
                      prototype[key] = mixinValue;
                  }
              }
  
              //<feature classSystem.inheritableStatics>
              // Mixin statics inheritance
              statics = mixin.$inheritableStatics;
  
              if (statics) {
                  for (i = 0, ln = statics.length; i < ln; i++) {
                      staticName = statics[i];
  
                      if (!me.hasOwnProperty(staticName)) {
                          me[staticName] = mixinClass[staticName];
                      }
                  }
              }
              //</feature>
  
              //<feature classSystem.config>
              if ('config' in mixin) {
                  me.addConfig(mixin.config, false);
              }
              //</feature>
  
              prototype.mixins[name] = mixin;
              return me;
          }
func_code_string: function(name, mixinClass) {
              var me = this,
                  mixin = mixinClass.prototype,
                  prototype = me.prototype,
                  key, statics, i, ln, staticName,
                  mixinValue, hookKey, hookFunction;
  
              if (typeof mixin.onClassMixedIn != 'undefined') {
                  mixin.onClassMixedIn.call(mixinClass, me);
              }
  
              if (!prototype.hasOwnProperty('mixins')) {
                  if ('mixins' in prototype) {
                      prototype.mixins = Ext.Object.chain(prototype.mixins);
                  }
                  else {
                      prototype.mixins = {};
                  }
              }
  
              for (key in mixin) {
                  mixinValue = mixin[key];
                  if (key === 'mixins') {
                      Ext.merge(prototype.mixins, mixinValue);
                  }
                  else if (key === 'xhooks') {
                      for (hookKey in mixinValue) {
                          hookFunction = mixinValue[hookKey];
  
                          // Mixed in xhook methods cannot call a parent.
                          hookFunction.$previous = Ext.emptyFn;
  
                          if (prototype.hasOwnProperty(hookKey)) {
  
                              // Pass the hook function, and the existing function which it is to underride.
                              // The existing function has its $previous pointer replaced by a closure
                              // which calls the hookFunction and then the existing function's original $previous
                              hookFunctionFactory(hookFunction, prototype[hookKey], hookKey, me);
                          } else {
                              // There's no original function, so generate an implementation which calls
                              // the hook function. It will not get any $previous pointer.
                              prototype[hookKey] = hookFunctionFactory(hookFunction, null, hookKey, me);
                          }
                      }
                  }
                  else if (!(key === 'mixinId' || key === 'config') && (prototype[key] === undefined)) {
                      prototype[key] = mixinValue;
                  }
              }
  
              //<feature classSystem.inheritableStatics>
              // Mixin statics inheritance
              statics = mixin.$inheritableStatics;
  
              if (statics) {
                  for (i = 0, ln = statics.length; i < ln; i++) {
                      staticName = statics[i];
  
                      if (!me.hasOwnProperty(staticName)) {
                          me[staticName] = mixinClass[staticName];
                      }
                  }
              }
              //</feature>
  
              //<feature classSystem.config>
              if ('config' in mixin) {
                  me.addConfig(mixin.config, false);
              }
              //</feature>
  
              prototype.mixins[name] = mixin;
              return me;
          }
func_documentation_string: <feature classSystem.mixins> 
  Used internally by the mixins pre-processor
  @private
  @static
  @inheritable