docs: function () {
        var Class = makeCtor();
        var proto;
        Class.ClassMixin = _emberMetalMixin.Mixin.create(this.ClassMixin);
        Class.PrototypeMixin = _emberMetalMixin.Mixin.create(this.PrototypeMixin);
  
        Class.ClassMixin.ownerConstructor = Class;
        Class.PrototypeMixin.ownerConstructor = Class;
  
        reopen.apply(Class.PrototypeMixin, arguments);
  
        Class.superclass = this;
        Class.__super__ = this.prototype;
  
        proto = Class.prototype = Object.create(this.prototype);
        proto.constructor = Class;
        _emberMetalUtils.generateGuid(proto);
        _emberMetalMeta.meta(proto).proto = proto; // this will disable observers on prototype
  
        Class.ClassMixin.apply(Class);
        return Class;
      }