code: function report (ex) {
              var args = _slice.call(arguments, 1);
              if (lastExceptionStack) {
                  if (lastException === ex) {
                      return; // already caught by an inner catch block, ignore
                  } else {
                      var s = lastExceptionStack;
                      lastExceptionStack = null;
                      lastException = null;
                      notifyHandlers.apply(null, [s, null].concat(args));
                  }
              }
  
              var stack = TraceKit.computeStackTrace(ex);
              lastExceptionStack = stack;
              lastException = ex;
  
              // If the stack trace is incomplete, wait for 2 seconds for
              // slow slow IE to see if onerror occurs or not before reporting
              // this exception; otherwise, we will end up with an incomplete
              // stack trace
              window.setTimeout(function() {
                  if (lastException === ex) {
                      lastExceptionStack = null;
                      lastException = null;
                      notifyHandlers.apply(null, [stack, null].concat(args));
                  }
              }, (stack.incomplete ? 2000 : 0));
  
              throw ex; // re-throw to propagate to the top level (and cause window.onerror)
          }
docs: Reports an unhandled Error to TraceKit.
  @param {Error} ex