docs: function create(type, def, base) {
      // empty constructor
      type.prototype = base ? typeof base === 'function' ? new base() : base : new Class(); // set base object as prototype
      return apply(new type(), def); // return empty object with right [[Prototype]]
  }