code: function define(type, baseClass, members, statics) {
      // empty constructor
      type.prototype = baseClass ? typeof baseClass === "function" ? new baseClass() : baseClass : new Class(); // set base object as prototype
      type.prototype.constructor = type;
      type.prototype = apply(type.prototype, members || {});
      return apply(type, statics || {}); // return empty object with right [[Prototype]]
  }
docs: Defines a new member and registers it into the wrapper object.
  
  @param memberName
  {String} The name of the member to be defined. It must be a valid
  namespace identifier.
  @param definition
  {Object} Contains the public class members.
  @param wrapper
  {Object} Defines the wrapper of the new Object, if not provided
  window will be taken.