docs: function wrapMethod(name, method, constructor, isStatic) {
          // Return the method if the class was created efficiently
          if (constructor[$class].efficient) {
              return method;
          }
  
          var wrapper,
              parentClass = constructor.$parent,
              parentSource = parentClass && (isStatic ? parentClass : parentClass.prototype),
              parentMethod;
  
          method = method[$wrapped] || method;
  
          wrapper = function () {
              var _super = this.$super,
                  _self = this.$self,
                  // Use the real source of the method if available
                  // See: https://github.com/IndigoUnited/dejavu/issues/49
                  parent = parentSource && parentSource[name],
                  ret;
  
              this.$super = parent;
              this.$self = constructor;
              ret = method.apply(this, arguments);
              this.$super = _super;
              this.$self = _self;
  
              return ret;
          };
  
          wrapper[$wrapped] = method;
  
          return wrapper;
      }