From fd0f3bb7eb9f97745a86da414bb48d50dc3aa605 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Sat, 14 May 2016 01:57:22 +0200 Subject: [PATCH 01/25] Start work to make the deduplication plugin work like the .NET one --- dist/exceptionless.d.ts | 5 +- dist/exceptionless.js | 36 ++++---- dist/exceptionless.js.map | 2 +- dist/exceptionless.min.js | 2 +- dist/exceptionless.min.js.map | 2 +- dist/exceptionless.node.js | 36 ++++---- dist/exceptionless.node.js.map | 2 +- src/models/IEvent.ts | 1 + .../default/DuplicateCheckerPlugin-spec.ts | 32 ++++--- src/plugins/default/DuplicateCheckerPlugin.ts | 83 +++++++++++++------ 10 files changed, 126 insertions(+), 75 deletions(-) diff --git a/dist/exceptionless.d.ts b/dist/exceptionless.d.ts index 20ed6c8f..13edbf56 100644 --- a/dist/exceptionless.d.ts +++ b/dist/exceptionless.d.ts @@ -8,6 +8,7 @@ export interface IEvent { value?: number; data?: any; reference_id?: string; + count?: number; } export declare class SubmissionResponse { success: boolean; @@ -428,8 +429,10 @@ export declare class DuplicateCheckerPlugin implements IEventPlugin { name: string; private _processedHashcodes; private _getCurrentTime; - constructor(getCurrentTime?: () => number); + constructor(getCurrentTime?: () => number, interval?: number); run(context: EventPluginContext, next?: () => void): void; + private onInterval(); + private enqueueMergedEvents(); } export declare class EventExclusionPlugin implements IEventPlugin { priority: number; diff --git a/dist/exceptionless.js b/dist/exceptionless.js index e03c45d1..f75e83e9 100644 --- a/dist/exceptionless.js +++ b/dist/exceptionless.js @@ -2717,30 +2717,26 @@ var SubmissionMethodPlugin = (function () { }()); exports.SubmissionMethodPlugin = SubmissionMethodPlugin; var DuplicateCheckerPlugin = (function () { - function DuplicateCheckerPlugin(getCurrentTime) { + function DuplicateCheckerPlugin(getCurrentTime, interval) { if (getCurrentTime === void 0) { getCurrentTime = function () { return Date.now(); }; } - this.priority = 40; + if (interval === void 0) { interval = 60000; } + this.priority = 90; this.name = 'DuplicateCheckerPlugin'; this._processedHashcodes = []; this._getCurrentTime = getCurrentTime; + setInterval(this.onInterval, interval); } DuplicateCheckerPlugin.prototype.run = function (context, next) { function isDuplicate(error, processedHashcodes, now, log) { - var _loop_1 = function() { - var hashCode = Utils.getHashCode(error.stack_trace && JSON.stringify(error.stack_trace)); - if (hashCode && processedHashcodes.some(function (h) { return h.hash === hashCode && h.timestamp >= (now - 2000); })) { - log.info("Ignoring duplicate error event hash: " + hashCode); - return { value: true }; - } - processedHashcodes.push({ hash: hashCode, timestamp: now }); - while (processedHashcodes.length > 20) { - processedHashcodes.shift(); - } - error = error.inner; - }; - while (error) { - var state_1 = _loop_1(); - if (typeof state_1 === "object") return state_1.value; + var _this = this; + var hashCode = Utils.getHashCode(JSON.stringify(error, ['stack_trace', 'inner'])); + if (hashCode && processedHashcodes.some(function (h) { return h.hash === hashCode && h.timestamp >= (now - _this._interval); })) { + log.info("Ignoring duplicate error event hash: " + hashCode); + return true; + } + processedHashcodes.push({ hash: hashCode, timestamp: now }); + while (processedHashcodes.length > 50) { + processedHashcodes.shift(); } return false; } @@ -2752,6 +2748,12 @@ var DuplicateCheckerPlugin = (function () { } next && next(); }; + DuplicateCheckerPlugin.prototype.onInterval = function () { + this.enqueueMergedEvents(); + }; + DuplicateCheckerPlugin.prototype.enqueueMergedEvents = function () { + return true; + }; return DuplicateCheckerPlugin; }()); exports.DuplicateCheckerPlugin = DuplicateCheckerPlugin; diff --git a/dist/exceptionless.js.map b/dist/exceptionless.js.map index ae649d81..1a8c67f2 100644 --- a/dist/exceptionless.js.map +++ b/dist/exceptionless.js.map @@ -1 +1 @@ -{"version":3,"sources":["tracekit.js","/source/exceptionless.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"exceptionless.js","sourcesContent":["/**\n * https://github.com/csnover/TraceKit\n * @license MIT\n * @namespace TraceKit\n */\n(function(window, undefined) {\nif (!window) {\n return;\n}\n\nvar TraceKit = {};\nvar _oldTraceKit = window.TraceKit;\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n/**\n * A better form of hasOwnProperty
\n * Example: `_has(MainHostObject, property) === true/false`\n *\n * @param {Object} object to check property\n * @param {string} key to check\n * @return {Boolean} true if the object has the key and it is not inherited\n */\nfunction _has(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Returns true if the parameter is undefined
\n * Example: `_isUndefined(val) === true/false`\n *\n * @param {*} what Value to check\n * @return {Boolean} true if undefined and false otherwise\n */\nfunction _isUndefined(what) {\n return typeof what === 'undefined';\n}\n\n/**\n * Export TraceKit out to another variable
\n * Example: `var TK = TraceKit.noConflict()`\n * @return {Object} The TraceKit object\n * @memberof TraceKit\n */\nTraceKit.noConflict = function noConflict() {\n window.TraceKit = _oldTraceKit;\n return TraceKit;\n};\n\n/**\n * Wrap any function in a TraceKit reporter
\n * Example: `func = TraceKit.wrap(func);`\n *\n * @param {Function} func Function to be wrapped\n * @return {Function} The wrapped func\n * @memberof TraceKit\n */\nTraceKit.wrap = function traceKitWrapper(func) {\n function wrapped() {\n try {\n return func.apply(this, arguments);\n } catch (e) {\n TraceKit.report(e);\n throw e;\n }\n }\n return wrapped;\n};\n\n/**\n * Cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * ```js\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n * ```\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a TraceKit.StackTrace object as described in the\n * TraceKit.computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nTraceKit.report = (function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n * @memberof TraceKit.report\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n * @memberof TraceKit.report\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {TraceKit.StackTrace} stack\n * @param {boolean} isWindowError Is this a top-level window error?\n * @memberof TraceKit.report\n * @throws An exception if an error occurs while calling an handler.\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (_has(handlers, i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n\n if (exception) {\n throw exception;\n }\n }\n\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} message Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error occurred.\n * @param {(number|string)=} columnNo The column number at which the error occurred.\n * @param {Error=} errorObj The actual Error object.\n * @memberof TraceKit.report\n */\n function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) {\n var stack = null;\n\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);\n \t processLastException();\n\t } else if (errorObj) {\n stack = TraceKit.computeStackTrace(errorObj);\n notifyHandlers(stack, true);\n } else {\n var location = {\n 'url': url,\n 'line': lineNo,\n 'column': columnNo\n };\n location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line);\n location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line);\n stack = {\n 'mode': 'onerror',\n 'message': message,\n 'stack': [location]\n };\n\n notifyHandlers(stack, true);\n }\n\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n\n return false;\n }\n\n /**\n * Install a global onerror handler\n * @memberof TraceKit.report\n */\n function installGlobalHandler () {\n if (_onErrorHandlerInstalled === true) {\n return;\n }\n _oldOnerrorHandler = window.onerror;\n window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n\n /**\n * Process the most recent exception\n * @memberof TraceKit.report\n */\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @memberof TraceKit.report\n * @throws An exception if an incomplete stack trace is detected (old IE browsers).\n */\n function report(ex) {\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = _slice.call(arguments, 1);\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n window.setTimeout(function () {\n if (lastException === ex) {\n processLastException();\n }\n }, (stack.incomplete ? 2000 : 0));\n\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n return report;\n}());\n\n/**\n * An object representing a single stack frame.\n * @typedef {Object} StackFrame\n * @property {string} url The JavaScript or HTML file URL.\n * @property {string} func The function name, or empty for anonymous functions (if guessing did not work).\n * @property {string[]?} args The arguments passed to the function, if known.\n * @property {number=} line The line number, if known.\n * @property {number=} column The column number, if known.\n * @property {string[]} context An array of source code lines; the middle element corresponds to the correct line#.\n * @memberof TraceKit\n */\n\n/**\n * An object representing a JavaScript stack trace.\n * @typedef {Object} StackTrace\n * @property {string} name The name of the thrown exception.\n * @property {string} message The exception error message.\n * @property {TraceKit.StackFrame[]} stack An array of stack frames.\n * @property {string} mode 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace.\n * @memberof TraceKit\n */\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * ```js\n * s = TraceKit.computeStackTrace.ofCaller([depth])\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * ```\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n * Tracing example:\n * ```js\n * function trace(message) {\n * var stackInfo = TraceKit.computeStackTrace.ofCaller();\n * var data = message + \"\\n\";\n * for(var i in stackInfo.stack) {\n * var item = stackInfo.stack[i];\n * data += (item.func || '[anonymous]') + \"() in \" + item.url + \":\" + (item.line || '0') + \"\\n\";\n * }\n * if (window.console)\n * console.info(data);\n * else\n * alert(data);\n * }\n * ```\n * @memberof TraceKit\n * @namespace\n */\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\n var debug = false,\n sourceCache = {};\n\n /**\n * Attempts to retrieve source code via XMLHttpRequest, which is used\n * to look up anonymous function names.\n * @param {string} url URL of source code.\n * @return {string} Source contents.\n * @memberof TraceKit.computeStackTrace\n */\n function loadSource(url) {\n if (!TraceKit.remoteFetching) { //Only attempt request if remoteFetching is on.\n return '';\n }\n try {\n var getXHR = function() {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {\n // explicitly bubble up the exception if not found\n return new window.ActiveXObject('Microsoft.XMLHTTP');\n }\n };\n\n var request = getXHR();\n request.open('GET', url, false);\n request.send('');\n return request.responseText;\n } catch (e) {\n return '';\n }\n }\n\n /**\n * Retrieves source code from the source code cache.\n * @param {string} url URL of source code.\n * @return {Array.} Source contents.\n * @memberof TraceKit.computeStackTrace\n */\n function getSource(url) {\n if (typeof url !== 'string') {\n return [];\n }\n\n if (!_has(sourceCache, url)) {\n // URL needs to be able to fetched within the acceptable domain. Otherwise,\n // cross-domain errors will be triggered.\n /*\n Regex matches:\n 0 - Full Url\n 1 - Protocol\n 2 - Domain\n 3 - Port (Useful for internal applications)\n 4 - Path\n */\n var source = '';\n var domain = '';\n try { domain = window.document.domain; } catch (e) { }\n var match = /(.*)\\:\\/\\/([^:\\/]+)([:\\d]*)\\/{0,1}([\\s\\S]*)/.exec(url);\n if (match && match[2] === domain) {\n source = loadSource(url);\n }\n sourceCache[url] = source ? source.split('\\n') : [];\n }\n\n return sourceCache[url];\n }\n\n /**\n * Tries to use an externally loaded copy of source code to determine\n * the name of a function by looking at the name of the variable it was\n * assigned to, if any.\n * @param {string} url URL of source code.\n * @param {(string|number)} lineNo Line number in source code.\n * @return {string} The function name, if discoverable.\n * @memberof TraceKit.computeStackTrace\n */\n function guessFunctionName(url, lineNo) {\n var reFunctionArgNames = /function ([^(]*)\\(([^)]*)\\)/,\n reGuessFunction = /['\"]?([0-9A-Za-z$_]+)['\"]?\\s*[:=]\\s*(function|eval|new Function)/,\n line = '',\n maxLines = 10,\n source = getSource(url),\n m;\n\n if (!source.length) {\n return UNKNOWN_FUNCTION;\n }\n\n // Walk backwards from the first line in the function until we find the line which\n // matches the pattern above, which is the function definition\n for (var i = 0; i < maxLines; ++i) {\n line = source[lineNo - i] + line;\n\n if (!_isUndefined(line)) {\n if ((m = reGuessFunction.exec(line))) {\n return m[1];\n } else if ((m = reFunctionArgNames.exec(line))) {\n return m[1];\n }\n }\n }\n\n return UNKNOWN_FUNCTION;\n }\n\n /**\n * Retrieves the surrounding lines from where an exception occurred.\n * @param {string} url URL of source code.\n * @param {(string|number)} line Line number in source code to centre\n * around for context.\n * @return {?Array.} Lines of source code.\n * @memberof TraceKit.computeStackTrace\n */\n function gatherContext(url, line) {\n var source = getSource(url);\n\n if (!source.length) {\n return null;\n }\n\n var context = [],\n // linesBefore & linesAfter are inclusive with the offending line.\n // if linesOfContext is even, there will be one extra line\n // *before* the offending line.\n linesBefore = Math.floor(TraceKit.linesOfContext / 2),\n // Add one extra line if linesOfContext is odd\n linesAfter = linesBefore + (TraceKit.linesOfContext % 2),\n start = Math.max(0, line - linesBefore - 1),\n end = Math.min(source.length, line + linesAfter - 1);\n\n line -= 1; // convert to 0-based index\n\n for (var i = start; i < end; ++i) {\n if (!_isUndefined(source[i])) {\n context.push(source[i]);\n }\n }\n\n return context.length > 0 ? context : null;\n }\n\n /**\n * Escapes special characters, except for whitespace, in a string to be\n * used inside a regular expression as a string literal.\n * @param {string} text The string.\n * @return {string} The escaped string literal.\n * @memberof TraceKit.computeStackTrace\n */\n function escapeRegExp(text) {\n return text.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g, '\\\\$&');\n }\n\n /**\n * Escapes special characters in a string to be used inside a regular\n * expression as a string literal. Also ensures that HTML entities will\n * be matched the same as their literal friends.\n * @param {string} body The string.\n * @return {string} The escaped string.\n * @memberof TraceKit.computeStackTrace\n */\n function escapeCodeAsRegExpForMatchingInsideHTML(body) {\n return escapeRegExp(body).replace('<', '(?:<|<)').replace('>', '(?:>|>)').replace('&', '(?:&|&)').replace('\"', '(?:\"|")').replace(/\\s+/g, '\\\\s+');\n }\n\n /**\n * Determines where a code fragment occurs in the source code.\n * @param {RegExp} re The function definition.\n * @param {Array.} urls A list of URLs to search.\n * @return {?Object.} An object containing\n * the url, line, and column number of the defined function.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceInUrls(re, urls) {\n var source, m;\n for (var i = 0, j = urls.length; i < j; ++i) {\n // console.log('searching', urls[i]);\n if ((source = getSource(urls[i])).length) {\n source = source.join('\\n');\n if ((m = re.exec(source))) {\n // console.log('Found function in ' + urls[i]);\n\n return {\n 'url': urls[i],\n 'line': source.substring(0, m.index).split('\\n').length,\n 'column': m.index - source.lastIndexOf('\\n', m.index) - 1\n };\n }\n }\n }\n\n // console.log('no match');\n\n return null;\n }\n\n /**\n * Determines at which column a code fragment occurs on a line of the\n * source code.\n * @param {string} fragment The code fragment.\n * @param {string} url The URL to search.\n * @param {(string|number)} line The line number to examine.\n * @return {?number} The column number.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceInLine(fragment, url, line) {\n var source = getSource(url),\n re = new RegExp('\\\\b' + escapeRegExp(fragment) + '\\\\b'),\n m;\n\n line -= 1;\n\n if (source && source.length > line && (m = re.exec(source[line]))) {\n return m.index;\n }\n\n return null;\n }\n\n /**\n * Determines where a function was defined within the source code.\n * @param {(Function|string)} func A function reference or serialized\n * function definition.\n * @return {?Object.} An object containing\n * the url, line, and column number of the defined function.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceByFunctionBody(func) {\n if (_isUndefined(window && window.document)) {\n return;\n }\n\n var urls = [window.location.href],\n scripts = window.document.getElementsByTagName('script'),\n body,\n code = '' + func,\n codeRE = /^function(?:\\s+([\\w$]+))?\\s*\\(([\\w\\s,]*)\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\n eventRE = /^function on([\\w$]+)\\s*\\(event\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\n re,\n parts,\n result;\n\n for (var i = 0; i < scripts.length; ++i) {\n var script = scripts[i];\n if (script.src) {\n urls.push(script.src);\n }\n }\n\n if (!(parts = codeRE.exec(code))) {\n re = new RegExp(escapeRegExp(code).replace(/\\s+/g, '\\\\s+'));\n }\n\n // not sure if this is really necessary, but I don’t have a test\n // corpus large enough to confirm that and it was in the original.\n else {\n var name = parts[1] ? '\\\\s+' + parts[1] : '',\n args = parts[2].split(',').join('\\\\s*,\\\\s*');\n\n body = escapeRegExp(parts[3]).replace(/;$/, ';?'); // semicolon is inserted if the function ends with a comment.replace(/\\s+/g, '\\\\s+');\n re = new RegExp('function' + name + '\\\\s*\\\\(\\\\s*' + args + '\\\\s*\\\\)\\\\s*{\\\\s*' + body + '\\\\s*}');\n }\n\n // look for a normal function definition\n if ((result = findSourceInUrls(re, urls))) {\n return result;\n }\n\n // look for an old-school event handler function\n if ((parts = eventRE.exec(code))) {\n var event = parts[1];\n body = escapeCodeAsRegExpForMatchingInsideHTML(parts[2]);\n\n // look for a function defined in HTML as an onXXX handler\n re = new RegExp('on' + event + '=[\\\\\\'\"]\\\\s*' + body + '\\\\s*[\\\\\\'\"]', 'i');\n\n if ((result = findSourceInUrls(re, urls[0]))) {\n return result;\n }\n\n // look for ???\n re = new RegExp(body);\n\n if ((result = findSourceInUrls(re, urls))) {\n return result;\n }\n }\n\n return null;\n }\n\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack trace information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromStackProp(ex) {\n if (!ex.stack) {\n return null;\n }\n\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|\\[native).*?)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:ms-appx|https?|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\n lines = ex.stack.split('\\n'),\n stack = [],\n parts,\n element,\n reference = /^(.*) is undefined$/.exec(ex.message);\n\n for (var i = 0, j = lines.length; i < j; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') !== -1;\n element = {\n 'url': !isNative ? parts[2] : null,\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': isNative ? [parts[2]] : [],\n 'line': parts[3] ? +parts[3] : null,\n 'column': parts[4] ? +parts[4] : null\n };\n } else if ( parts = winjs.exec(lines[i]) ) {\n element = {\n 'url': parts[2],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': [],\n 'line': +parts[3],\n 'column': parts[4] ? +parts[4] : null\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n element = {\n 'url': parts[3],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': parts[2] ? parts[2].split(',') : [],\n 'line': parts[4] ? +parts[4] : null,\n 'column': parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = guessFunctionName(element.url, element.line);\n }\n\n if (element.line) {\n element.context = gatherContext(element.url, element.line);\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n if (stack[0] && stack[0].line && !stack[0].column && reference) {\n stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line);\n } else if (!stack[0].column && !_isUndefined(ex.columnNumber)) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n stack[0].column = ex.columnNumber + 1;\n }\n\n return {\n 'mode': 'stack',\n 'name': ex.name,\n 'message': ex.message,\n 'stack': stack\n };\n }\n\n /**\n * Computes stack trace information from the stacktrace property.\n * Opera 10+ uses this property.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack trace information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromStacktraceProp(ex) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n if (!stacktrace) {\n return;\n }\n\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i,\n opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i,\n lines = stacktrace.split('\\n'),\n stack = [],\n parts;\n\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n 'url': parts[2],\n 'line': +parts[1],\n 'column': null,\n 'func': parts[3],\n 'args':[]\n };\n } else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n 'url': parts[6],\n 'line': +parts[1],\n 'column': +parts[2],\n 'func': parts[3] || parts[4],\n 'args': parts[5] ? parts[5].split(',') : []\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = guessFunctionName(element.url, element.line);\n }\n if (element.line) {\n try {\n element.context = gatherContext(element.url, element.line);\n } catch (exc) {}\n }\n\n if (!element.context) {\n element.context = [lines[line + 1]];\n }\n\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n 'mode': 'stacktrace',\n 'name': ex.name,\n 'message': ex.message,\n 'stack': stack\n };\n }\n\n /**\n * NOT TESTED.\n * Computes stack trace information from an error message that includes\n * the stack trace.\n * Opera 9 and earlier use this method if the option to show stack\n * traces is turned on in opera:config.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromOperaMultiLineMessage(ex) {\n // TODO: Clean this function up\n // Opera includes a stack trace into the exception message. An example is:\n //\n // Statement on line 3: Undefined variable: undefinedFunc\n // Backtrace:\n // Line 3 of linked script file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.js: In function zzz\n // undefinedFunc(a);\n // Line 7 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function yyy\n // zzz(x, y, z);\n // Line 3 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function xxx\n // yyy(a, a, a);\n // Line 1 of function script\n // try { xxx('hi'); return false; } catch(ex) { TraceKit.report(ex); }\n // ...\n\n var lines = ex.message.split('\\n');\n if (lines.length < 4) {\n return null;\n }\n\n var lineRE1 = /^\\s*Line (\\d+) of linked script ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,\n lineRE2 = /^\\s*Line (\\d+) of inline#(\\d+) script in ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,\n lineRE3 = /^\\s*Line (\\d+) of function script\\s*$/i,\n stack = [],\n scripts = (window && window.document && window.document.getElementsByTagName('script')),\n inlineScriptBlocks = [],\n parts;\n\n for (var s in scripts) {\n if (_has(scripts, s) && !scripts[s].src) {\n inlineScriptBlocks.push(scripts[s]);\n }\n }\n\n for (var line = 2; line < lines.length; line += 2) {\n var item = null;\n if ((parts = lineRE1.exec(lines[line]))) {\n item = {\n 'url': parts[2],\n 'func': parts[3],\n 'args': [],\n 'line': +parts[1],\n 'column': null\n };\n } else if ((parts = lineRE2.exec(lines[line]))) {\n item = {\n 'url': parts[3],\n 'func': parts[4],\n 'args': [],\n 'line': +parts[1],\n 'column': null // TODO: Check to see if inline#1 (+parts[2]) points to the script number or column number.\n };\n var relativeLine = (+parts[1]); // relative to the start of the + + + + \ No newline at end of file From e41652d54620f174cc371249ba5372b3b51dad4b Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Tue, 27 Sep 2016 22:25:51 +0200 Subject: [PATCH 07/25] Increase timeouts because the testsuite process contains a lot of modules, we need to allow more time for module collection --- gulpfile.js | 3 ++- testrunner.html | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index ac28538a..b9047867 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -119,7 +119,8 @@ gulp.task('exceptionless.test.umd', ['typescript.test'], function () { gulp.task('test-node', ['exceptionless.test.umd'], function(done) { return gulp.src('dist/temp/exceptionless-nodespec.js', { read: false }) .pipe($.mocha({ - require: ['source-map-support/register'] + require: ['source-map-support/register'], + timeout: 5000 })) .once('end', function () { process.exit(); diff --git a/testrunner.html b/testrunner.html index a00569f9..eb2a439c 100644 --- a/testrunner.html +++ b/testrunner.html @@ -17,6 +17,7 @@ From b3419f10513ece062012a07043d3eea369de05c6 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Tue, 27 Sep 2016 22:26:22 +0200 Subject: [PATCH 08/25] load default settings / injects in testsuite --- src/tsconfig.test.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tsconfig.test.json b/src/tsconfig.test.json index cf04551e..6171aaab 100644 --- a/src/tsconfig.test.json +++ b/src/tsconfig.test.json @@ -14,6 +14,8 @@ "typings/node/node.d.ts", "typings/stack-trace/stack-trace.d.ts", + "exceptionless.node.ts", + "**/*-spec.ts", "**/*-nodespec.ts" ] @@ -22,6 +24,8 @@ "files": [ "typings/mocha/mocha.d.ts", "typings/chai/chai.d.ts", + + "exceptionless.ts", "**/*-spec.ts", "**/*-browserspec.ts" From 4cfc5fa137121091cccb957606b953be4ae4a6cc Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Tue, 27 Sep 2016 23:48:04 +0200 Subject: [PATCH 09/25] use fake XMLHttpRequests --- package.json | 1 + src/ExceptionlessClient-spec.ts | 11 +++++++++++ src/queue/DefaultEventQueue-spec.ts | 17 ++++++++++++----- test.config.js | 1 + 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4b99d382..ef143c35 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "rewire": "^2.5.2", "rimraf": "2.5.3", "run-sequence": "^1.2.2", + "sinon": "^1.17.6", "source-map-support": "0.4.2", "systemjs": "^0.19.39", "tracekit": "0.4.3", diff --git a/src/ExceptionlessClient-spec.ts b/src/ExceptionlessClient-spec.ts index 49ad1371..cd8ef996 100644 --- a/src/ExceptionlessClient-spec.ts +++ b/src/ExceptionlessClient-spec.ts @@ -1,8 +1,19 @@ import { ExceptionlessClient } from './ExceptionlessClient'; import { EventPluginContext } from './plugins/EventPluginContext'; import { expect } from 'chai'; +import * as sinon from 'sinon'; describe('ExceptionlessClient', () => { + let xhr: any; + + beforeEach(() => { + xhr = sinon.useFakeXMLHttpRequest(); + }); + + afterEach(() => { + xhr.restore(); + }); + it('should use event reference ids', (done) => { let error = new Error('From Unit Test'); diff --git a/src/queue/DefaultEventQueue-spec.ts b/src/queue/DefaultEventQueue-spec.ts index f854dff2..6d07bd1b 100644 --- a/src/queue/DefaultEventQueue-spec.ts +++ b/src/queue/DefaultEventQueue-spec.ts @@ -1,12 +1,18 @@ import { Configuration } from '../configuration/Configuration'; +import { SubmissionResponse } from '../submission/SubmissionResponse'; import { IEvent } from '../models/IEvent'; import { expect } from 'chai'; +import * as sinon from 'sinon'; describe('DefaultEventQueue', () => { let config: Configuration; + let xhr: any; + let requests: Array; beforeEach(() => { + xhr = sinon.useFakeXMLHttpRequest(); + config = getConfiguration(); }); @@ -14,6 +20,7 @@ describe('DefaultEventQueue', () => { let queue = config.queue; clearInterval(queue._queueTimer); config = null; + xhr.restore(); }); function getConfiguration(): Configuration { @@ -38,11 +45,11 @@ describe('DefaultEventQueue', () => { expect(config.storage.queue.get().length).to.equal(1); config.queue.process(); - if (!(config.queue)._suspendProcessingUntil) { - expect(config.storage.queue.get().length).to.equal(0); - } else { - expect(config.storage.queue.get().length).to.equal(1); - } + config.queue.onEventsPosted((events: IEvent[], response: SubmissionResponse) => { + expect((config.queue)._suspendProcessingUntil).to.be.undefined; + + expect(config.storage.queue.get().length).to.equal(0); + }); }); it('should discard event submission', () => { diff --git a/test.config.js b/test.config.js index 1e2ba45a..703dfb7a 100644 --- a/test.config.js +++ b/test.config.js @@ -2,6 +2,7 @@ require.config({ baseUrl: 'node_modules', paths: { chai: 'chai/chai', + sinon: 'sinon/lib/sinon', TraceKit: 'tracekit/tracekit' } }); From fff0f6991c6782d69e80cee4aac4f0b6f1388cd9 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Tue, 27 Sep 2016 23:51:19 +0200 Subject: [PATCH 10/25] Add sinon --- src/typings/sinon/sinon.d.ts | 441 +++++++++++++++++++++++++++++++++++ 1 file changed, 441 insertions(+) create mode 100644 src/typings/sinon/sinon.d.ts diff --git a/src/typings/sinon/sinon.d.ts b/src/typings/sinon/sinon.d.ts new file mode 100644 index 00000000..aa5822e0 --- /dev/null +++ b/src/typings/sinon/sinon.d.ts @@ -0,0 +1,441 @@ +// Type definitions for Sinon 1.16.0 +// Project: http://sinonjs.org/ +// Definitions by: William Sears +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// sinon uses DOM dependencies which are absent in browserless envoronment like node.js +// to avoid compiler errors this monkey patch is used +// see more details in https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11351 +interface Event { } +interface Document { } + +declare namespace Sinon { + interface SinonSpyCallApi { + // Properties + thisValue: any; + args: any[]; + exception: any; + returnValue: any; + + // Methods + calledOn(obj: any): boolean; + calledWith(...args: any[]): boolean; + calledWithExactly(...args: any[]): boolean; + calledWithMatch(...args: any[]): boolean; + notCalledWith(...args: any[]): boolean; + notCalledWithMatch(...args: any[]): boolean; + returned(value: any): boolean; + threw(): boolean; + threw(type: string): boolean; + threw(obj: any): boolean; + callArg(pos: number): void; + callArgOn(pos: number, obj: any, ...args: any[]): void; + callArgWith(pos: number, ...args: any[]): void; + callArgOnWith(pos: number, obj: any, ...args: any[]): void; + yield(...args: any[]): void; + yieldOn(obj: any, ...args: any[]): void; + yieldTo(property: string, ...args: any[]): void; + yieldToOn(property: string, obj: any, ...args: any[]): void; + } + + interface SinonSpyCall extends SinonSpyCallApi { + calledBefore(call: SinonSpyCall): boolean; + calledAfter(call: SinonSpyCall): boolean; + calledWithNew(call: SinonSpyCall): boolean; + } + + interface SinonSpy extends SinonSpyCallApi { + // Properties + callCount: number; + called: boolean; + notCalled: boolean; + calledOnce: boolean; + calledTwice: boolean; + calledThrice: boolean; + firstCall: SinonSpyCall; + secondCall: SinonSpyCall; + thirdCall: SinonSpyCall; + lastCall: SinonSpyCall; + thisValues: any[]; + args: any[][]; + exceptions: any[]; + returnValues: any[]; + + // Methods + (...args: any[]): any; + calledBefore(anotherSpy: SinonSpy): boolean; + calledAfter(anotherSpy: SinonSpy): boolean; + calledWithNew(): boolean; + withArgs(...args: any[]): SinonSpy; + alwaysCalledOn(obj: any): boolean; + alwaysCalledWith(...args: any[]): boolean; + alwaysCalledWithExactly(...args: any[]): boolean; + alwaysCalledWithMatch(...args: any[]): boolean; + neverCalledWith(...args: any[]): boolean; + neverCalledWithMatch(...args: any[]): boolean; + alwaysThrew(): boolean; + alwaysThrew(type: string): boolean; + alwaysThrew(obj: any): boolean; + alwaysReturned(): boolean; + invokeCallback(...args: any[]): void; + getCall(n: number): SinonSpyCall; + reset(): void; + printf(format: string, ...args: any[]): string; + restore(): void; + } + + interface SinonSpyStatic { + (): SinonSpy; + (func: any): SinonSpy; + (obj: any, method: string): SinonSpy; + } + + interface SinonStatic { + spy: SinonSpyStatic; + } + + interface SinonStub extends SinonSpy { + resetBehavior(): void; + returns(obj: any): SinonStub; + returnsArg(index: number): SinonStub; + returnsThis(): SinonStub; + throws(type?: string): SinonStub; + throws(obj: any): SinonStub; + callsArg(index: number): SinonStub; + callsArgOn(index: number, context: any): SinonStub; + callsArgWith(index: number, ...args: any[]): SinonStub; + callsArgOnWith(index: number, context: any, ...args: any[]): SinonStub; + callsArgAsync(index: number): SinonStub; + callsArgOnAsync(index: number, context: any): SinonStub; + callsArgWithAsync(index: number, ...args: any[]): SinonStub; + callsArgOnWithAsync(index: number, context: any, ...args: any[]): SinonStub; + onCall(n: number): SinonStub; + onFirstCall(): SinonStub; + onSecondCall(): SinonStub; + onThirdCall(): SinonStub; + yields(...args: any[]): SinonStub; + yieldsOn(context: any, ...args: any[]): SinonStub; + yieldsTo(property: string, ...args: any[]): SinonStub; + yieldsToOn(property: string, context: any, ...args: any[]): SinonStub; + yieldsAsync(...args: any[]): SinonStub; + yieldsOnAsync(context: any, ...args: any[]): SinonStub; + yieldsToAsync(property: string, ...args: any[]): SinonStub; + yieldsToOnAsync(property: string, context: any, ...args: any[]): SinonStub; + withArgs(...args: any[]): SinonStub; + } + + interface SinonStubStatic { + (): SinonStub; + (obj: any): SinonStub; + (obj: any, method: string): SinonStub; + (obj: any, method: string, func: any): SinonStub; + } + + interface SinonStatic { + stub: SinonStubStatic; + } + + interface SinonExpectation extends SinonStub { + atLeast(n: number): SinonExpectation; + atMost(n: number): SinonExpectation; + never(): SinonExpectation; + once(): SinonExpectation; + twice(): SinonExpectation; + thrice(): SinonExpectation; + exactly(n: number): SinonExpectation; + withArgs(...args: any[]): SinonExpectation; + withExactArgs(...args: any[]): SinonExpectation; + on(obj: any): SinonExpectation; + verify(): SinonExpectation; + restore(): void; + } + + interface SinonExpectationStatic { + create(methodName?: string): SinonExpectation; + } + + interface SinonMock { + expects(method: string): SinonExpectation; + restore(): void; + verify(): void; + } + + interface SinonMockStatic { + (): SinonExpectation; + (obj: any): SinonMock; + } + + interface SinonStatic { + expectation: SinonExpectationStatic; + mock: SinonMockStatic; + } + + interface SinonFakeTimers { + now: number; + create(now: number): SinonFakeTimers; + setTimeout(callback: (...args: any[]) => void, timeout: number, ...args: any[]): number; + clearTimeout(id: number): void; + setInterval(callback: (...args: any[]) => void, timeout: number, ...args: any[]): number; + clearInterval(id: number): void; + tick(ms: number): number; + reset(): void; + Date(): Date; + Date(year: number): Date; + Date(year: number, month: number): Date; + Date(year: number, month: number, day: number): Date; + Date(year: number, month: number, day: number, hour: number): Date; + Date(year: number, month: number, day: number, hour: number, minute: number): Date; + Date(year: number, month: number, day: number, hour: number, minute: number, second: number): Date; + Date(year: number, month: number, day: number, hour: number, minute: number, second: number, ms: number): Date; + restore(): void; + + /** + * Simulate the user changing the system clock while your program is running. It changes the 'now' timestamp + * without affecting timers, intervals or immediates. + * @param now The new 'now' in unix milliseconds + */ + setSystemTime(now: number): void; + /** + * Simulate the user changing the system clock while your program is running. It changes the 'now' timestamp + * without affecting timers, intervals or immediates. + * @param now The new 'now' as a JavaScript Date + */ + setSystemTime(date: Date): void; + } + + interface SinonFakeTimersStatic { + (): SinonFakeTimers; + (...timers: string[]): SinonFakeTimers; + (now: number, ...timers: string[]): SinonFakeTimers; + } + + interface SinonStatic { + useFakeTimers: SinonFakeTimersStatic; + clock: SinonFakeTimers; + } + + interface SinonFakeUploadProgress { + eventListeners: { + progress: any[]; + load: any[]; + abort: any[]; + error: any[]; + }; + + addEventListener(event: string, listener: (e: Event) => any): void; + removeEventListener(event: string, listener: (e: Event) => any): void; + dispatchEvent(event: Event): void; + } + + interface SinonFakeXMLHttpRequest { + // Properties + onCreate: (xhr: SinonFakeXMLHttpRequest) => void; + url: string; + method: string; + requestHeaders: any; + requestBody: string; + status: number; + statusText: string; + async: boolean; + username: string; + password: string; + withCredentials: boolean; + upload: SinonFakeUploadProgress; + responseXML: Document; + getResponseHeader(header: string): string; + getAllResponseHeaders(): any; + + // Methods + restore(): void; + useFilters: boolean; + addFilter(filter: (method: string, url: string, async: boolean, username: string, password: string) => boolean): void; + setResponseHeaders(headers: any): void; + setResponseBody(body: string): void; + respond(status: number, headers: any, body: string): void; + autoRespond(ms: number): void; + } + + interface SinonFakeXMLHttpRequestStatic { + (): SinonFakeXMLHttpRequest; + } + + interface SinonStatic { + useFakeXMLHttpRequest: SinonFakeXMLHttpRequestStatic; + FakeXMLHttpRequest: SinonFakeXMLHttpRequest; + } + + interface SinonFakeServer { + // Properties + autoRespond: boolean; + autoRespondAfter: number; + fakeHTTPMethods: boolean; + getHTTPMethod: (request: SinonFakeXMLHttpRequest) => string; + requests: SinonFakeXMLHttpRequest[]; + respondImmediately: boolean; + + // Methods + respondWith(body: string): void; + respondWith(response: any[]): void; + respondWith(fn: (xhr: SinonFakeXMLHttpRequest) => void): void; + respondWith(url: string, body: string): void; + respondWith(url: string, response: any[]): void; + respondWith(url: string, fn: (xhr: SinonFakeXMLHttpRequest) => void): void; + respondWith(method: string, url: string, body: string): void; + respondWith(method: string, url: string, response: any[]): void; + respondWith(method: string, url: string, fn: (xhr: SinonFakeXMLHttpRequest) => void): void; + respondWith(url: RegExp, body: string): void; + respondWith(url: RegExp, response: any[]): void; + respondWith(url: RegExp, fn: (xhr: SinonFakeXMLHttpRequest) => void): void; + respondWith(method: string, url: RegExp, body: string): void; + respondWith(method: string, url: RegExp, response: any[]): void; + respondWith(method: string, url: RegExp, fn: (xhr: SinonFakeXMLHttpRequest) => void): void; + respond(): void; + restore(): void; + } + + interface SinonFakeServerStatic { + create(): SinonFakeServer; + } + + interface SinonStatic { + fakeServer: SinonFakeServerStatic; + fakeServerWithClock: SinonFakeServerStatic; + } + + interface SinonExposeOptions { + prefix?: string; + includeFail?: boolean; + } + + interface SinonAssert { + // Properties + failException: string; + fail: (message?: string) => void; // Overridable + pass: (assertion: any) => void; // Overridable + + // Methods + notCalled(spy: SinonSpy): void; + called(spy: SinonSpy): void; + calledOnce(spy: SinonSpy): void; + calledTwice(spy: SinonSpy): void; + calledThrice(spy: SinonSpy): void; + callCount(spy: SinonSpy, count: number): void; + callOrder(...spies: SinonSpy[]): void; + calledOn(spy: SinonSpy, obj: any): void; + alwaysCalledOn(spy: SinonSpy, obj: any): void; + calledWith(spy: SinonSpy, ...args: any[]): void; + alwaysCalledWith(spy: SinonSpy, ...args: any[]): void; + neverCalledWith(spy: SinonSpy, ...args: any[]): void; + calledWithExactly(spy: SinonSpy, ...args: any[]): void; + alwaysCalledWithExactly(spy: SinonSpy, ...args: any[]): void; + calledWithMatch(spy: SinonSpy, ...args: any[]): void; + alwaysCalledWithMatch(spy: SinonSpy, ...args: any[]): void; + neverCalledWithMatch(spy: SinonSpy, ...args: any[]): void; + threw(spy: SinonSpy): void; + threw(spy: SinonSpy, exception: string): void; + threw(spy: SinonSpy, exception: any): void; + alwaysThrew(spy: SinonSpy): void; + alwaysThrew(spy: SinonSpy, exception: string): void; + alwaysThrew(spy: SinonSpy, exception: any): void; + expose(obj: any, options?: SinonExposeOptions): void; + } + + interface SinonStatic { + assert: SinonAssert; + } + + interface SinonMatcher { + and(expr: SinonMatcher): SinonMatcher; + or(expr: SinonMatcher): SinonMatcher; + } + + interface SinonMatch { + (value: number): SinonMatcher; + (value: string): SinonMatcher; + (expr: RegExp): SinonMatcher; + (obj: any): SinonMatcher; + (callback: (value: any) => boolean): SinonMatcher; + any: SinonMatcher; + defined: SinonMatcher; + truthy: SinonMatcher; + falsy: SinonMatcher; + bool: SinonMatcher; + number: SinonMatcher; + string: SinonMatcher; + object: SinonMatcher; + func: SinonMatcher; + array: SinonMatcher; + regexp: SinonMatcher; + date: SinonMatcher; + same(obj: any): SinonMatcher; + typeOf(type: string): SinonMatcher; + instanceOf(type: any): SinonMatcher; + has(property: string, expect?: any): SinonMatcher; + hasOwn(property: string, expect?: any): SinonMatcher; + } + + interface SinonStatic { + match: SinonMatch; + } + + interface SinonSandboxConfig { + injectInto?: any; + properties?: string[]; + useFakeTimers?: any; + useFakeServer?: any; + } + + interface SinonSandbox { + clock: SinonFakeTimers; + requests: SinonFakeXMLHttpRequest; + server: SinonFakeServer; + spy: SinonSpyStatic; + stub: SinonStubStatic; + mock: SinonMockStatic; + useFakeTimers: SinonFakeTimersStatic; + useFakeXMLHttpRequest: SinonFakeXMLHttpRequestStatic; + useFakeServer(): SinonFakeServer; + restore(): void; + } + + interface SinonSandboxStatic { + create(): SinonSandbox; + create(config: SinonSandboxConfig): SinonSandbox; + } + + interface SinonStatic { + sandbox: SinonSandboxStatic; + } + + interface SinonTestConfig { + injectIntoThis?: boolean; + injectInto?: any; + properties?: string[]; + useFakeTimers?: boolean; + useFakeServer?: boolean; + } + + interface SinonTestWrapper extends SinonSandbox { + (...args: any[]): any; + } + + interface SinonStatic { + config: SinonTestConfig; + test(fn: (...args: any[]) => any): SinonTestWrapper; + testCase(tests: any): any; + } + + // Utility overridables + interface SinonStatic { + createStubInstance(constructor: any): SinonStub; + format(obj: any): string; + log(message: string): void; + restore(object: any): void; + } +} + +declare var sinon: Sinon.SinonStatic; + +declare module "sinon" { + export = sinon; +} \ No newline at end of file From 09cd8054b525382f4a64fa03bb8f774438b1d0ac Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Tue, 27 Sep 2016 23:51:28 +0200 Subject: [PATCH 11/25] Remove unused variable --- src/queue/DefaultEventQueue-spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/queue/DefaultEventQueue-spec.ts b/src/queue/DefaultEventQueue-spec.ts index 6d07bd1b..5aa9414e 100644 --- a/src/queue/DefaultEventQueue-spec.ts +++ b/src/queue/DefaultEventQueue-spec.ts @@ -8,7 +8,6 @@ describe('DefaultEventQueue', () => { let config: Configuration; let xhr: any; - let requests: Array; beforeEach(() => { xhr = sinon.useFakeXMLHttpRequest(); From 06d81f2c5dcc27c2d946fd916cd4692965e2da37 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 00:10:04 +0200 Subject: [PATCH 12/25] Create a real exception in the reference id test --- src/ExceptionlessClient-spec.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ExceptionlessClient-spec.ts b/src/ExceptionlessClient-spec.ts index cd8ef996..c0d7b706 100644 --- a/src/ExceptionlessClient-spec.ts +++ b/src/ExceptionlessClient-spec.ts @@ -15,7 +15,7 @@ describe('ExceptionlessClient', () => { }); it('should use event reference ids', (done) => { - let error = new Error('From Unit Test'); + let error = createException(); let client = new ExceptionlessClient('LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw', 'http://localhost:50000'); expect(client.config.lastReferenceIdManager.getLast()).to.be.null; @@ -82,4 +82,15 @@ describe('ExceptionlessClient', () => { expect(client.config.apiKey).to.equal('LhhP1C9gijpSKCslHHCvwdSIz298twx271n1l6xw'); expect(client.config.serverUrl).to.equal('http://localhost:50000'); }); + + function createException() { + function throwError() { + throw new ReferenceError('This is a test'); + } + try { + throwError(); + } catch (e) { + return e; + } + } }); From ef44761a4bd168c79bc01135f90d82f20ce365d4 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 00:12:48 +0200 Subject: [PATCH 13/25] Get rid of higher timeout values --- testrunner.html | 1 - 1 file changed, 1 deletion(-) diff --git a/testrunner.html b/testrunner.html index eb2a439c..a00569f9 100644 --- a/testrunner.html +++ b/testrunner.html @@ -17,7 +17,6 @@ From e2968ccf49992d7387b35e09ceee45bb15b958dc Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 13:58:54 +0200 Subject: [PATCH 14/25] use the same priority as the .NET client --- src/plugins/default/DuplicateCheckerPlugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index de63dac5..070548db 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -4,7 +4,7 @@ import { EventPluginContext } from '../EventPluginContext'; import { Utils } from '../../Utils'; export class DuplicateCheckerPlugin implements IEventPlugin { - public priority: number = 90; + public priority: number = 1010; public name: string = 'DuplicateCheckerPlugin'; private _mergedEvents: MergedEvent[] = []; From 1bbe4bf376741c34b117c666e79e69685daa63aa Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 14:00:02 +0200 Subject: [PATCH 15/25] Use += instead of = --- src/plugins/default/DuplicateCheckerPlugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index 070548db..381e6af4 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -29,7 +29,7 @@ export class DuplicateCheckerPlugin implements IEventPlugin { while (error) { if (error.stack_trace && error.stack_trace.length) { - hashCode = (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); + hashCode += (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); } error = error.inner; } From 2a35c09d1ac9ee5fa67a048e3bb1f6cf7535ce25 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 14:00:55 +0200 Subject: [PATCH 16/25] Also take the message into account, to deal with errors without stack trace --- src/plugins/default/DuplicateCheckerPlugin.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index 381e6af4..0aafbfd7 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -29,6 +29,7 @@ export class DuplicateCheckerPlugin implements IEventPlugin { while (error) { if (error.stack_trace && error.stack_trace.length) { + hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); hashCode += (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); } error = error.inner; From f7c9b2db760639af0addf45811b7825c001afb07 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 14:09:08 +0200 Subject: [PATCH 17/25] Add logging --- src/plugins/default/DuplicateCheckerPlugin.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index 0aafbfd7..d4e2aaad 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -40,6 +40,7 @@ export class DuplicateCheckerPlugin implements IEventPlugin { let error = context.event.data['@error']; let hashCode = getHashCode(error); + if (!hashCode) { return; } @@ -51,16 +52,19 @@ export class DuplicateCheckerPlugin implements IEventPlugin { if (merged) { merged.incrementCount(count); merged.updateDate(context.event.date); + context.log.info("Ignoring duplicate event with hash: " + hashCode); context.cancelled = true; return; } if (this._processedHashcodes.some(h => h.hash === hashCode && h.timestamp >= (now - this._interval))) { + context.log.info("Adding event with hash: " + hashCode); this._mergedEvents.push(new MergedEvent(hashCode, context, count)); context.cancelled = true; return; } + context.log.info("Enqueueing event with hash: " + hashCode + "to cache."); this._processedHashcodes.push({ hash: hashCode, timestamp: now }); // Only keep the last 50 recent errors. From b26971aab61d0ccf38cd8ed9c8c0bab3e0cad516 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Wed, 28 Sep 2016 14:09:46 +0200 Subject: [PATCH 18/25] correct the case where no stack trace is found --- src/plugins/default/DuplicateCheckerPlugin.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index d4e2aaad..7206b0fd 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -28,8 +28,9 @@ export class DuplicateCheckerPlugin implements IEventPlugin { let hashCode = 0; while (error) { - if (error.stack_trace && error.stack_trace.length) { - hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); + hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); + + if (error.stack_trace && error.stack_trace.length) { hashCode += (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); } error = error.inner; From bf1baabf3926fcf4446dfee262d961758106ff36 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Mon, 3 Oct 2016 21:21:52 +0200 Subject: [PATCH 19/25] use 30 secs as deduplication interval --- src/plugins/default/DuplicateCheckerPlugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index 7206b0fd..9221015f 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -12,7 +12,7 @@ export class DuplicateCheckerPlugin implements IEventPlugin { private _getCurrentTime: () => number; private _interval: number; - constructor(getCurrentTime: () => number = () => Date.now(), interval: number = 60000) { + constructor(getCurrentTime: () => number = () => Date.now(), interval: number = 30000) { this._getCurrentTime = getCurrentTime; this._interval = interval; From be062f79bf77762449b8fcbfe2c45756c154368d Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Mon, 3 Oct 2016 21:23:59 +0200 Subject: [PATCH 20/25] Add check on error.message --- src/plugins/default/DuplicateCheckerPlugin.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index 9221015f..389c16b4 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -28,9 +28,10 @@ export class DuplicateCheckerPlugin implements IEventPlugin { let hashCode = 0; while (error) { - hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); - - if (error.stack_trace && error.stack_trace.length) { + if (error.message && error.message.length){ + hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); + } + if (error.stack_trace && error.stack_trace.length) { hashCode += (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); } error = error.inner; From 63c94a195aa3cea5afaca5cadbc54c1a581dc542 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Mon, 3 Oct 2016 21:24:54 +0200 Subject: [PATCH 21/25] Fix lint messages --- src/plugins/default/DuplicateCheckerPlugin.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin.ts b/src/plugins/default/DuplicateCheckerPlugin.ts index 389c16b4..b9dedfe8 100644 --- a/src/plugins/default/DuplicateCheckerPlugin.ts +++ b/src/plugins/default/DuplicateCheckerPlugin.ts @@ -28,7 +28,7 @@ export class DuplicateCheckerPlugin implements IEventPlugin { let hashCode = 0; while (error) { - if (error.message && error.message.length){ + if (error.message && error.message.length) { hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); } if (error.stack_trace && error.stack_trace.length) { @@ -54,19 +54,19 @@ export class DuplicateCheckerPlugin implements IEventPlugin { if (merged) { merged.incrementCount(count); merged.updateDate(context.event.date); - context.log.info("Ignoring duplicate event with hash: " + hashCode); + context.log.info('Ignoring duplicate event with hash: ' + hashCode); context.cancelled = true; return; } if (this._processedHashcodes.some(h => h.hash === hashCode && h.timestamp >= (now - this._interval))) { - context.log.info("Adding event with hash: " + hashCode); + context.log.info('Adding event with hash: ' + hashCode); this._mergedEvents.push(new MergedEvent(hashCode, context, count)); context.cancelled = true; return; } - context.log.info("Enqueueing event with hash: " + hashCode + "to cache."); + context.log.info('Enqueueing event with hash: ' + hashCode + 'to cache.'); this._processedHashcodes.push({ hash: hashCode, timestamp: now }); // Only keep the last 50 recent errors. From 66f40c360b04e0d7e0f37e98795ed55a0a1f2c7f Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Mon, 3 Oct 2016 21:35:07 +0200 Subject: [PATCH 22/25] Fix unit test Errors with just a message are also deduplicated now --- src/plugins/default/DuplicateCheckerPlugin-spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/default/DuplicateCheckerPlugin-spec.ts b/src/plugins/default/DuplicateCheckerPlugin-spec.ts index af6b72c8..03cfc64d 100644 --- a/src/plugins/default/DuplicateCheckerPlugin-spec.ts +++ b/src/plugins/default/DuplicateCheckerPlugin-spec.ts @@ -38,13 +38,13 @@ describe('DuplicateCheckerPlugin', () => { }); - it('shouldn\'t ignore error without stack', () => { + it('should ignore error without stack', () => { let exception = new ReferenceError('This is a test'); delete exception.stack; run(exception); let contextOfSecondRun = run(exception); - expect(contextOfSecondRun.cancelled).not.to.be.true; + expect(contextOfSecondRun.cancelled).to.be.true; }); it('shouldn\'t ignore different stack within window', () => { From cdf55c8a3992c2e3cfc21353f722b7a899d97b62 Mon Sep 17 00:00:00 2001 From: Sander Rijken Date: Mon, 3 Oct 2016 21:36:09 +0200 Subject: [PATCH 23/25] Run build --- dist/exceptionless.js | 12 +++++++++--- dist/exceptionless.js.map | 2 +- dist/exceptionless.min.js | 4 ++-- dist/exceptionless.min.js.map | 2 +- dist/exceptionless.node.js | 12 +++++++++--- dist/exceptionless.node.js.map | 2 +- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/dist/exceptionless.js b/dist/exceptionless.js index db8ddd36..c0fb241c 100644 --- a/dist/exceptionless.js +++ b/dist/exceptionless.js @@ -2721,8 +2721,8 @@ var DuplicateCheckerPlugin = (function () { function DuplicateCheckerPlugin(getCurrentTime, interval) { var _this = this; if (getCurrentTime === void 0) { getCurrentTime = function () { return Date.now(); }; } - if (interval === void 0) { interval = 60000; } - this.priority = 90; + if (interval === void 0) { interval = 30000; } + this.priority = 1010; this.name = 'DuplicateCheckerPlugin'; this._mergedEvents = []; this._processedHashcodes = []; @@ -2739,8 +2739,11 @@ var DuplicateCheckerPlugin = (function () { function getHashCode(error) { var hashCode = 0; while (error) { + if (error.message && error.message.length) { + hashCode += (hashCode * 397) ^ Utils.getHashCode(error.message); + } if (error.stack_trace && error.stack_trace.length) { - hashCode = (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); + hashCode += (hashCode * 397) ^ Utils.getHashCode(JSON.stringify(error.stack_trace)); } error = error.inner; } @@ -2757,14 +2760,17 @@ var DuplicateCheckerPlugin = (function () { if (merged) { merged.incrementCount(count); merged.updateDate(context.event.date); + context.log.info('Ignoring duplicate event with hash: ' + hashCode); context.cancelled = true; return; } if (this._processedHashcodes.some(function (h) { return h.hash === hashCode && h.timestamp >= (now - _this._interval); })) { + context.log.info('Adding event with hash: ' + hashCode); this._mergedEvents.push(new MergedEvent(hashCode, context, count)); context.cancelled = true; return; } + context.log.info('Enqueueing event with hash: ' + hashCode + 'to cache.'); this._processedHashcodes.push({ hash: hashCode, timestamp: now }); while (this._processedHashcodes.length > 50) { this._processedHashcodes.shift(); diff --git a/dist/exceptionless.js.map b/dist/exceptionless.js.map index b4f69d4b..c6cff8e8 100644 --- a/dist/exceptionless.js.map +++ b/dist/exceptionless.js.map @@ -1 +1 @@ -{"version":3,"sources":["tracekit.js","/source/exceptionless.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"exceptionless.js","sourcesContent":["/**\n * https://github.com/csnover/TraceKit\n * @license MIT\n * @namespace TraceKit\n */\n(function(window, undefined) {\nif (!window) {\n return;\n}\n\nvar TraceKit = {};\nvar _oldTraceKit = window.TraceKit;\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n/**\n * A better form of hasOwnProperty
\n * Example: `_has(MainHostObject, property) === true/false`\n *\n * @param {Object} object to check property\n * @param {string} key to check\n * @return {Boolean} true if the object has the key and it is not inherited\n */\nfunction _has(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Returns true if the parameter is undefined
\n * Example: `_isUndefined(val) === true/false`\n *\n * @param {*} what Value to check\n * @return {Boolean} true if undefined and false otherwise\n */\nfunction _isUndefined(what) {\n return typeof what === 'undefined';\n}\n\n/**\n * Export TraceKit out to another variable
\n * Example: `var TK = TraceKit.noConflict()`\n * @return {Object} The TraceKit object\n * @memberof TraceKit\n */\nTraceKit.noConflict = function noConflict() {\n window.TraceKit = _oldTraceKit;\n return TraceKit;\n};\n\n/**\n * Wrap any function in a TraceKit reporter
\n * Example: `func = TraceKit.wrap(func);`\n *\n * @param {Function} func Function to be wrapped\n * @return {Function} The wrapped func\n * @memberof TraceKit\n */\nTraceKit.wrap = function traceKitWrapper(func) {\n function wrapped() {\n try {\n return func.apply(this, arguments);\n } catch (e) {\n TraceKit.report(e);\n throw e;\n }\n }\n return wrapped;\n};\n\n/**\n * Cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * ```js\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n * ```\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a TraceKit.StackTrace object as described in the\n * TraceKit.computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nTraceKit.report = (function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n * @memberof TraceKit.report\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n * @memberof TraceKit.report\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {TraceKit.StackTrace} stack\n * @param {boolean} isWindowError Is this a top-level window error?\n * @memberof TraceKit.report\n * @throws An exception if an error occurs while calling an handler.\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (_has(handlers, i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n\n if (exception) {\n throw exception;\n }\n }\n\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} message Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error occurred.\n * @param {(number|string)=} columnNo The column number at which the error occurred.\n * @param {Error=} errorObj The actual Error object.\n * @memberof TraceKit.report\n */\n function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) {\n var stack = null;\n\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);\n \t processLastException();\n\t } else if (errorObj) {\n stack = TraceKit.computeStackTrace(errorObj);\n notifyHandlers(stack, true);\n } else {\n var location = {\n 'url': url,\n 'line': lineNo,\n 'column': columnNo\n };\n location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line);\n location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line);\n stack = {\n 'mode': 'onerror',\n 'message': message,\n 'stack': [location]\n };\n\n notifyHandlers(stack, true);\n }\n\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n\n return false;\n }\n\n /**\n * Install a global onerror handler\n * @memberof TraceKit.report\n */\n function installGlobalHandler () {\n if (_onErrorHandlerInstalled === true) {\n return;\n }\n _oldOnerrorHandler = window.onerror;\n window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n\n /**\n * Process the most recent exception\n * @memberof TraceKit.report\n */\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @memberof TraceKit.report\n * @throws An exception if an incomplete stack trace is detected (old IE browsers).\n */\n function report(ex) {\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = _slice.call(arguments, 1);\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n window.setTimeout(function () {\n if (lastException === ex) {\n processLastException();\n }\n }, (stack.incomplete ? 2000 : 0));\n\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n return report;\n}());\n\n/**\n * An object representing a single stack frame.\n * @typedef {Object} StackFrame\n * @property {string} url The JavaScript or HTML file URL.\n * @property {string} func The function name, or empty for anonymous functions (if guessing did not work).\n * @property {string[]?} args The arguments passed to the function, if known.\n * @property {number=} line The line number, if known.\n * @property {number=} column The column number, if known.\n * @property {string[]} context An array of source code lines; the middle element corresponds to the correct line#.\n * @memberof TraceKit\n */\n\n/**\n * An object representing a JavaScript stack trace.\n * @typedef {Object} StackTrace\n * @property {string} name The name of the thrown exception.\n * @property {string} message The exception error message.\n * @property {TraceKit.StackFrame[]} stack An array of stack frames.\n * @property {string} mode 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace.\n * @memberof TraceKit\n */\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * ```js\n * s = TraceKit.computeStackTrace.ofCaller([depth])\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * ```\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n * Tracing example:\n * ```js\n * function trace(message) {\n * var stackInfo = TraceKit.computeStackTrace.ofCaller();\n * var data = message + \"\\n\";\n * for(var i in stackInfo.stack) {\n * var item = stackInfo.stack[i];\n * data += (item.func || '[anonymous]') + \"() in \" + item.url + \":\" + (item.line || '0') + \"\\n\";\n * }\n * if (window.console)\n * console.info(data);\n * else\n * alert(data);\n * }\n * ```\n * @memberof TraceKit\n * @namespace\n */\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\n var debug = false,\n sourceCache = {};\n\n /**\n * Attempts to retrieve source code via XMLHttpRequest, which is used\n * to look up anonymous function names.\n * @param {string} url URL of source code.\n * @return {string} Source contents.\n * @memberof TraceKit.computeStackTrace\n */\n function loadSource(url) {\n if (!TraceKit.remoteFetching) { //Only attempt request if remoteFetching is on.\n return '';\n }\n try {\n var getXHR = function() {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {\n // explicitly bubble up the exception if not found\n return new window.ActiveXObject('Microsoft.XMLHTTP');\n }\n };\n\n var request = getXHR();\n request.open('GET', url, false);\n request.send('');\n return request.responseText;\n } catch (e) {\n return '';\n }\n }\n\n /**\n * Retrieves source code from the source code cache.\n * @param {string} url URL of source code.\n * @return {Array.} Source contents.\n * @memberof TraceKit.computeStackTrace\n */\n function getSource(url) {\n if (typeof url !== 'string') {\n return [];\n }\n\n if (!_has(sourceCache, url)) {\n // URL needs to be able to fetched within the acceptable domain. Otherwise,\n // cross-domain errors will be triggered.\n /*\n Regex matches:\n 0 - Full Url\n 1 - Protocol\n 2 - Domain\n 3 - Port (Useful for internal applications)\n 4 - Path\n */\n var source = '';\n var domain = '';\n try { domain = window.document.domain; } catch (e) { }\n var match = /(.*)\\:\\/\\/([^:\\/]+)([:\\d]*)\\/{0,1}([\\s\\S]*)/.exec(url);\n if (match && match[2] === domain) {\n source = loadSource(url);\n }\n sourceCache[url] = source ? source.split('\\n') : [];\n }\n\n return sourceCache[url];\n }\n\n /**\n * Tries to use an externally loaded copy of source code to determine\n * the name of a function by looking at the name of the variable it was\n * assigned to, if any.\n * @param {string} url URL of source code.\n * @param {(string|number)} lineNo Line number in source code.\n * @return {string} The function name, if discoverable.\n * @memberof TraceKit.computeStackTrace\n */\n function guessFunctionName(url, lineNo) {\n var reFunctionArgNames = /function ([^(]*)\\(([^)]*)\\)/,\n reGuessFunction = /['\"]?([0-9A-Za-z$_]+)['\"]?\\s*[:=]\\s*(function|eval|new Function)/,\n line = '',\n maxLines = 10,\n source = getSource(url),\n m;\n\n if (!source.length) {\n return UNKNOWN_FUNCTION;\n }\n\n // Walk backwards from the first line in the function until we find the line which\n // matches the pattern above, which is the function definition\n for (var i = 0; i < maxLines; ++i) {\n line = source[lineNo - i] + line;\n\n if (!_isUndefined(line)) {\n if ((m = reGuessFunction.exec(line))) {\n return m[1];\n } else if ((m = reFunctionArgNames.exec(line))) {\n return m[1];\n }\n }\n }\n\n return UNKNOWN_FUNCTION;\n }\n\n /**\n * Retrieves the surrounding lines from where an exception occurred.\n * @param {string} url URL of source code.\n * @param {(string|number)} line Line number in source code to centre\n * around for context.\n * @return {?Array.} Lines of source code.\n * @memberof TraceKit.computeStackTrace\n */\n function gatherContext(url, line) {\n var source = getSource(url);\n\n if (!source.length) {\n return null;\n }\n\n var context = [],\n // linesBefore & linesAfter are inclusive with the offending line.\n // if linesOfContext is even, there will be one extra line\n // *before* the offending line.\n linesBefore = Math.floor(TraceKit.linesOfContext / 2),\n // Add one extra line if linesOfContext is odd\n linesAfter = linesBefore + (TraceKit.linesOfContext % 2),\n start = Math.max(0, line - linesBefore - 1),\n end = Math.min(source.length, line + linesAfter - 1);\n\n line -= 1; // convert to 0-based index\n\n for (var i = start; i < end; ++i) {\n if (!_isUndefined(source[i])) {\n context.push(source[i]);\n }\n }\n\n return context.length > 0 ? context : null;\n }\n\n /**\n * Escapes special characters, except for whitespace, in a string to be\n * used inside a regular expression as a string literal.\n * @param {string} text The string.\n * @return {string} The escaped string literal.\n * @memberof TraceKit.computeStackTrace\n */\n function escapeRegExp(text) {\n return text.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g, '\\\\$&');\n }\n\n /**\n * Escapes special characters in a string to be used inside a regular\n * expression as a string literal. Also ensures that HTML entities will\n * be matched the same as their literal friends.\n * @param {string} body The string.\n * @return {string} The escaped string.\n * @memberof TraceKit.computeStackTrace\n */\n function escapeCodeAsRegExpForMatchingInsideHTML(body) {\n return escapeRegExp(body).replace('<', '(?:<|<)').replace('>', '(?:>|>)').replace('&', '(?:&|&)').replace('\"', '(?:\"|")').replace(/\\s+/g, '\\\\s+');\n }\n\n /**\n * Determines where a code fragment occurs in the source code.\n * @param {RegExp} re The function definition.\n * @param {Array.} urls A list of URLs to search.\n * @return {?Object.} An object containing\n * the url, line, and column number of the defined function.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceInUrls(re, urls) {\n var source, m;\n for (var i = 0, j = urls.length; i < j; ++i) {\n // console.log('searching', urls[i]);\n if ((source = getSource(urls[i])).length) {\n source = source.join('\\n');\n if ((m = re.exec(source))) {\n // console.log('Found function in ' + urls[i]);\n\n return {\n 'url': urls[i],\n 'line': source.substring(0, m.index).split('\\n').length,\n 'column': m.index - source.lastIndexOf('\\n', m.index) - 1\n };\n }\n }\n }\n\n // console.log('no match');\n\n return null;\n }\n\n /**\n * Determines at which column a code fragment occurs on a line of the\n * source code.\n * @param {string} fragment The code fragment.\n * @param {string} url The URL to search.\n * @param {(string|number)} line The line number to examine.\n * @return {?number} The column number.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceInLine(fragment, url, line) {\n var source = getSource(url),\n re = new RegExp('\\\\b' + escapeRegExp(fragment) + '\\\\b'),\n m;\n\n line -= 1;\n\n if (source && source.length > line && (m = re.exec(source[line]))) {\n return m.index;\n }\n\n return null;\n }\n\n /**\n * Determines where a function was defined within the source code.\n * @param {(Function|string)} func A function reference or serialized\n * function definition.\n * @return {?Object.} An object containing\n * the url, line, and column number of the defined function.\n * @memberof TraceKit.computeStackTrace\n */\n function findSourceByFunctionBody(func) {\n if (_isUndefined(window && window.document)) {\n return;\n }\n\n var urls = [window.location.href],\n scripts = window.document.getElementsByTagName('script'),\n body,\n code = '' + func,\n codeRE = /^function(?:\\s+([\\w$]+))?\\s*\\(([\\w\\s,]*)\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\n eventRE = /^function on([\\w$]+)\\s*\\(event\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\n re,\n parts,\n result;\n\n for (var i = 0; i < scripts.length; ++i) {\n var script = scripts[i];\n if (script.src) {\n urls.push(script.src);\n }\n }\n\n if (!(parts = codeRE.exec(code))) {\n re = new RegExp(escapeRegExp(code).replace(/\\s+/g, '\\\\s+'));\n }\n\n // not sure if this is really necessary, but I don’t have a test\n // corpus large enough to confirm that and it was in the original.\n else {\n var name = parts[1] ? '\\\\s+' + parts[1] : '',\n args = parts[2].split(',').join('\\\\s*,\\\\s*');\n\n body = escapeRegExp(parts[3]).replace(/;$/, ';?'); // semicolon is inserted if the function ends with a comment.replace(/\\s+/g, '\\\\s+');\n re = new RegExp('function' + name + '\\\\s*\\\\(\\\\s*' + args + '\\\\s*\\\\)\\\\s*{\\\\s*' + body + '\\\\s*}');\n }\n\n // look for a normal function definition\n if ((result = findSourceInUrls(re, urls))) {\n return result;\n }\n\n // look for an old-school event handler function\n if ((parts = eventRE.exec(code))) {\n var event = parts[1];\n body = escapeCodeAsRegExpForMatchingInsideHTML(parts[2]);\n\n // look for a function defined in HTML as an onXXX handler\n re = new RegExp('on' + event + '=[\\\\\\'\"]\\\\s*' + body + '\\\\s*[\\\\\\'\"]', 'i');\n\n if ((result = findSourceInUrls(re, urls[0]))) {\n return result;\n }\n\n // look for ???\n re = new RegExp(body);\n\n if ((result = findSourceInUrls(re, urls))) {\n return result;\n }\n }\n\n return null;\n }\n\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack trace information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromStackProp(ex) {\n if (!ex.stack) {\n return null;\n }\n\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|\\[native).*?)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:ms-appx|https?|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\n lines = ex.stack.split('\\n'),\n stack = [],\n parts,\n element,\n reference = /^(.*) is undefined$/.exec(ex.message);\n\n for (var i = 0, j = lines.length; i < j; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') !== -1;\n element = {\n 'url': !isNative ? parts[2] : null,\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': isNative ? [parts[2]] : [],\n 'line': parts[3] ? +parts[3] : null,\n 'column': parts[4] ? +parts[4] : null\n };\n } else if ( parts = winjs.exec(lines[i]) ) {\n element = {\n 'url': parts[2],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': [],\n 'line': +parts[3],\n 'column': parts[4] ? +parts[4] : null\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n element = {\n 'url': parts[3],\n 'func': parts[1] || UNKNOWN_FUNCTION,\n 'args': parts[2] ? parts[2].split(',') : [],\n 'line': parts[4] ? +parts[4] : null,\n 'column': parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = guessFunctionName(element.url, element.line);\n }\n\n if (element.line) {\n element.context = gatherContext(element.url, element.line);\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n if (stack[0] && stack[0].line && !stack[0].column && reference) {\n stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line);\n } else if (!stack[0].column && !_isUndefined(ex.columnNumber)) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n stack[0].column = ex.columnNumber + 1;\n }\n\n return {\n 'mode': 'stack',\n 'name': ex.name,\n 'message': ex.message,\n 'stack': stack\n };\n }\n\n /**\n * Computes stack trace information from the stacktrace property.\n * Opera 10+ uses this property.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack trace information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromStacktraceProp(ex) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n if (!stacktrace) {\n return;\n }\n\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i,\n opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i,\n lines = stacktrace.split('\\n'),\n stack = [],\n parts;\n\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n 'url': parts[2],\n 'line': +parts[1],\n 'column': null,\n 'func': parts[3],\n 'args':[]\n };\n } else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n 'url': parts[6],\n 'line': +parts[1],\n 'column': +parts[2],\n 'func': parts[3] || parts[4],\n 'args': parts[5] ? parts[5].split(',') : []\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = guessFunctionName(element.url, element.line);\n }\n if (element.line) {\n try {\n element.context = gatherContext(element.url, element.line);\n } catch (exc) {}\n }\n\n if (!element.context) {\n element.context = [lines[line + 1]];\n }\n\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n 'mode': 'stacktrace',\n 'name': ex.name,\n 'message': ex.message,\n 'stack': stack\n };\n }\n\n /**\n * NOT TESTED.\n * Computes stack trace information from an error message that includes\n * the stack trace.\n * Opera 9 and earlier use this method if the option to show stack\n * traces is turned on in opera:config.\n * @param {Error} ex\n * @return {?TraceKit.StackTrace} Stack information.\n * @memberof TraceKit.computeStackTrace\n */\n function computeStackTraceFromOperaMultiLineMessage(ex) {\n // TODO: Clean this function up\n // Opera includes a stack trace into the exception message. An example is:\n //\n // Statement on line 3: Undefined variable: undefinedFunc\n // Backtrace:\n // Line 3 of linked script file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.js: In function zzz\n // undefinedFunc(a);\n // Line 7 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function yyy\n // zzz(x, y, z);\n // Line 3 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function xxx\n // yyy(a, a, a);\n // Line 1 of function script\n // try { xxx('hi'); return false; } catch(ex) { TraceKit.report(ex); }\n // ...\n\n var lines = ex.message.split('\\n');\n if (lines.length < 4) {\n return null;\n }\n\n var lineRE1 = /^\\s*Line (\\d+) of linked script ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,\n lineRE2 = /^\\s*Line (\\d+) of inline#(\\d+) script in ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,\n lineRE3 = /^\\s*Line (\\d+) of function script\\s*$/i,\n stack = [],\n scripts = (window && window.document && window.document.getElementsByTagName('script')),\n inlineScriptBlocks = [],\n parts;\n\n for (var s in scripts) {\n if (_has(scripts, s) && !scripts[s].src) {\n inlineScriptBlocks.push(scripts[s]);\n }\n }\n\n for (var line = 2; line < lines.length; line += 2) {\n var item = null;\n if ((parts = lineRE1.exec(lines[line]))) {\n item = {\n 'url': parts[2],\n 'func': parts[3],\n 'args': [],\n 'line': +parts[1],\n 'column': null\n };\n } else if ((parts = lineRE2.exec(lines[line]))) {\n item = {\n 'url': parts[3],\n 'func': parts[4],\n 'args': [],\n 'line': +parts[1],\n 'column': null // TODO: Check to see if inline#1 (+parts[2]) points to the script number or column number.\n };\n var relativeLine = (+parts[1]); // relative to the start of the