code: function Event(name, publisher, defaultErrorCallback) {
      assertParam(name, "eventName").isNonEmptyString().check();
      assertParam(publisher, "publisher").isObject().check();
  
      this.name = name;
      // register the name
      __eventNameMap[name] = true;
      this.publisher = publisher;
      if (defaultErrorCallback) {
        this._defaultErrorCallback = defaultErrorCallback;
      }
    }
docs: Class to support basic event publication and subscription semantics.
  @class Event
   
  Constructor for an Event
  @example
  salaryEvent = new Event("salaryEvent", person);
  @method <ctor> Event
  @param name {String}
  @param publisher {Object} The object that will be doing the publication. i.e. the object to which this event is attached.
  @param [defaultErrorCallback] {Function} If omitted then subscriber notification failures will be ignored.
  
  errorCallback([e])
  @param [defaultErrorCallback.e] {Error} Any error encountered during subscription execution.