code: function report(ex, rethrow) {
  	    var args = _slice.call(arguments, 1);
  
  	    if (lastExceptionStack) {
  	      if (lastException === ex) {
  	        return; // already caught by an inner catch block, ignore
  	      } else {
  	        processLastException();
  	      }
  	    }
  
  	    var stack = TraceKit.computeStackTrace(ex);
  	    lastExceptionStack = stack;
  	    lastException = ex;
  	    lastArgs = args; // 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
  
  	    setTimeout(function () {
  	      if (lastException === ex) {
  	        processLastException();
  	      }
  	    }, stack.incomplete ? 2000 : 0);
  
  	    if (rethrow !== false) {
  	      throw ex; // re-throw to propagate to the top level (and cause window.onerror)
  	    }
  	  }
docs: Reports an unhandled Error to TraceKit.
  @param {Error} ex
  @param {?boolean} rethrow If false, do not re-throw the exception.
  Only used for window.onerror to not cause an infinite loop of
  rethrowing.