| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- // Generated by CoffeeScript 1.6.3
 
- var classic,
 
-   __slice = [].slice;
 
- module.exports = classic = {};
 
- classic.implement = function() {
 
-   var classProto, classReference, desc, member, mixin, mixins, _i, _j, _len;
 
-   mixins = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), classReference = arguments[_i++];
 
-   for (_j = 0, _len = mixins.length; _j < _len; _j++) {
 
-     mixin = mixins[_j];
 
-     classProto = classReference.prototype;
 
-     for (member in mixin.prototype) {
 
-       if (!Object.getOwnPropertyDescriptor(classProto, member)) {
 
-         desc = Object.getOwnPropertyDescriptor(mixin.prototype, member);
 
-         Object.defineProperty(classProto, member, desc);
 
-       }
 
-     }
 
-   }
 
-   return classReference;
 
- };
 
- classic.mix = function() {
 
-   var classProto, classReference, desc, member, mixin, mixins, _i, _j, _len;
 
-   mixins = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), classReference = arguments[_i++];
 
-   classProto = classReference.prototype;
 
-   classReference.__mixinCloners = [];
 
-   classReference.__applyClonersFor = function(instance, args) {
 
-     var cloner, _j, _len, _ref;
 
-     if (args == null) {
 
-       args = null;
 
-     }
 
-     _ref = classReference.__mixinCloners;
 
-     for (_j = 0, _len = _ref.length; _j < _len; _j++) {
 
-       cloner = _ref[_j];
 
-       cloner.apply(instance, args);
 
-     }
 
-   };
 
-   classReference.__mixinInitializers = [];
 
-   classReference.__initMixinsFor = function(instance, args) {
 
-     var initializer, _j, _len, _ref;
 
-     if (args == null) {
 
-       args = null;
 
-     }
 
-     _ref = classReference.__mixinInitializers;
 
-     for (_j = 0, _len = _ref.length; _j < _len; _j++) {
 
-       initializer = _ref[_j];
 
-       initializer.apply(instance, args);
 
-     }
 
-   };
 
-   classReference.__mixinQuitters = [];
 
-   classReference.__applyQuittersFor = function(instance, args) {
 
-     var quitter, _j, _len, _ref;
 
-     if (args == null) {
 
-       args = null;
 
-     }
 
-     _ref = classReference.__mixinQuitters;
 
-     for (_j = 0, _len = _ref.length; _j < _len; _j++) {
 
-       quitter = _ref[_j];
 
-       quitter.apply(instance, args);
 
-     }
 
-   };
 
-   for (_j = 0, _len = mixins.length; _j < _len; _j++) {
 
-     mixin = mixins[_j];
 
-     if (!(mixin.constructor instanceof Function)) {
 
-       throw Error("Mixin should be a function");
 
-     }
 
-     for (member in mixin.prototype) {
 
-       if (member.substr(0, 11) === '__initMixin') {
 
-         classReference.__mixinInitializers.push(mixin.prototype[member]);
 
-         continue;
 
-       } else if (member.substr(0, 11) === '__clonerFor') {
 
-         classReference.__mixinCloners.push(mixin.prototype[member]);
 
-         continue;
 
-       } else if (member.substr(0, 12) === '__quitterFor') {
 
-         classReference.__mixinQuitters.push(mixin.prototype[member]);
 
-         continue;
 
-       }
 
-       if (!Object.getOwnPropertyDescriptor(classProto, member)) {
 
-         desc = Object.getOwnPropertyDescriptor(mixin.prototype, member);
 
-         Object.defineProperty(classProto, member, desc);
 
-       }
 
-     }
 
-   }
 
-   return classReference;
 
- };
 
 
  |