docs: function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) {
          var stack = null;
  
          if (lastExceptionStack) {
              TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);
      	    processLastException();
          } else if (errorObj) {
              stack = TraceKit.computeStackTrace(errorObj);
              notifyHandlers(stack, true, errorObj);
          } else {
              var location = {
                'url': url,
                'line': lineNo,
                'column': columnNo
              };
  
              var name;
              var msg = message; // must be new var or will modify original `arguments`
              if ({}.toString.call(message) === '[object String]') {
                  var groups = message.match(ERROR_TYPES_RE);
                  if (groups) {
                      name = groups[1];
                      msg = groups[2];
                  }
              }
  
              location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line);
              location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line);
              stack = {
                  'name': name,
                  'message': msg,
                  'mode': 'onerror',
                  'stack': [location]
              };
  
              notifyHandlers(stack, true, null);
          }
  
          if (_oldOnerrorHandler) {
              return _oldOnerrorHandler.apply(this, arguments);
          }
  
          return false;
      }