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;
        }
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];

                        
                        hookFunction.$previous = Ext.emptyFn;

                        if (prototype.hasOwnProperty(hookKey)) {

                            
                            
                            
                            hookFunctionFactory(hookFunction, prototype[hookKey], hookKey, me);
                        } else {
                            
                            
                            prototype[hookKey] = hookFunctionFactory(hookFunction, null, hookKey, me);
                        }
                    }
                }
                else if (!(key === 'mixinId' || key === 'config') && (prototype[key] === undefined)) {
                    prototype[key] = mixinValue;
                }
            }

            
            
            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];
                    }
                }
            }
            

            
            if ('config' in mixin) {
                me.addConfig(mixin.config, false);
            }
            

            prototype.mixins[name] = mixin;
            return me;
        }
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 ; }
<feature classSystem.mixins> 
Used internally by the mixins pre-processor
@private
@static
@inheritable
<feature classSystem . mixins > Used internally by the mixins pre - processor