docs: function( classInstance, optMethodName, var_args )
      {
          var caller = arguments.callee.caller;
  
          if ( caller.super ) {
              return caller.super.constructor.apply( classInstance,
                                                     Array.prototype.slice.call( arguments, 1 ));
          }
  
          var args = Array.prototype.slice.call( arguments, 2 ), foundCaller = false;
  
          for ( var ctor = classInstance.constructor; ctor;
                ctor = ctor.super && ctor.super.constructor )
          {
              if ( ctor.prototype[ optMethodName ] === caller )
                  foundCaller = true;
              else if ( foundCaller )
                  return ctor.prototype[ optMethodName ].apply( classInstance, args );
          }
      }