whole_func_string: function recordAndTriggerHandlers(type, eventData) {
              this.history.push({type:type, data: eventData})
              this.handlers[type].forEach(function(handlerInfo) {
                  try {
                      handlerInfo.handler.call(undefined, eventData)
                  } catch(e) {
  
                      // throw error asynchronously because these error should be separate from the test exceptions
                      var throwErrorFn = options.throwAsyncException
  
                      if(handlerInfo.domain) {
                          throwErrorFn = handlerInfo.domain.bind(throwErrorFn)    // this domain bind is needed because emit is done inside deadunit's test domain, which isn't where we want to put errors caused by the event handlers
                      }
  
                      throwErrorFn(e)
                  }
              })
          }
func_code_string: function recordAndTriggerHandlers(type, eventData) {
              this.history.push({type:type, data: eventData})
              this.handlers[type].forEach(function(handlerInfo) {
                  try {
                      handlerInfo.handler.call(undefined, eventData)
                  } catch(e) {
  
                      // throw error asynchronously because these error should be separate from the test exceptions
                      var throwErrorFn = options.throwAsyncException
  
                      if(handlerInfo.domain) {
                          throwErrorFn = handlerInfo.domain.bind(throwErrorFn)    // this domain bind is needed because emit is done inside deadunit's test domain, which isn't where we want to put errors caused by the event handlers
                      }
  
                      throwErrorFn(e)
                  }
              })
          }
func_documentation_string: the synchronous part of emitting