code: function definition() {
  
              var func_in         = function() { };
              func_in.prototype   = this;
              var scope_in_obj    = new func_in();
              
  
              // Create an inner and outer scope. The inner scope refers to the
              // 'this' variable, where the outer scope contains references to
              // all objects and functions accessible from the outside.
              var scope_in = generateInnerScope(this, arguments, scope_in_obj, false);
              
              // for __call implementations
              if (typeof (this) === 'undefined' || typeof (this.__joii__) === 'undefined' || typeof (scope_in) !== 'object' || typeof (scope_in.__joii__) === 'undefined') {
                  return scope_in;
              }
  
              
  
              
              var scope_out = generateOuterScope(this, scope_in);
              
              // need to link the inner and outer scopes before calling constructors
              linkAPI(scope_in, scope_out);
              
  
              // apply meta traits
              JOII.callMetaMixin('beforeNew', scope_in, scope_out);
  
              for (var meta_index in scope_in.__joii__.metadata) {
                  if (scope_in.__joii__.metadata.hasOwnProperty(meta_index) === false) continue;
                  var meta = scope_in.__joii__.metadata[meta_index];
          
                  JOII.callMetaMixin('onNew', scope_in, scope_out, meta);
              }
      
              JOII.callMetaMixin('afterNew', scope_in, scope_out);
  
  
              callConstructors(scope_in, arguments);
  
              return scope_out;
          }
docs: Defines the class definition. This is the function that is executed
  when the class is instantiated or executed. The function will relay
  execution to the __construct or __call method, depending whether the
  class was called as a function or instantiated using the 'new'
  keyword.
  
  @return object The outer (public) class scope.