/
error-stack-parser.min.js
2 lines (2 loc) · 3.02 KB
/
error-stack-parser.min.js
1
2
!function(e,r){"use strict";"function"==typeof define&&define.amd?define("error-stack-parser",["stackframe"],r):"object"==typeof exports?module.exports=r(require("stackframe")):e.ErrorStackParser=r(e.StackFrame)}(this,function(e){"use strict";var r=/(^|@)\S+:\d+/,t=/^\s*at .*(\S+:\d+|\(native\))/m,a=/^(eval@)?(\[native code])?$/;return{parse:function(e){if(void 0!==e.stacktrace||void 0!==e["opera#sourceloc"])return this.parseOpera(e);if(e.stack&&e.stack.match(t))return this.parseV8OrIE(e);if(e.stack)return this.parseFFOrSafari(e);throw new Error("Cannot parse given Error object")},extractLocation:function(e){if(-1===e.indexOf(":"))return[e];var r=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,""));return[r[1],r[2]||void 0,r[3]||void 0]},parseV8OrIE:function(r){return r.stack.split("\n").filter(function(e){return!!e.match(t)},this).map(function(r){r.indexOf("(eval ")>-1&&(r=r.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var t=r.replace(/^\s+/,"").replace(/\(eval code/g,"("),a=t.match(/ (\((.+):(\d+):(\d+)\)$)/),n=(t=a?t.replace(a[0],""):t).split(/\s+/).slice(1),i=this.extractLocation(a?a[1]:n.pop()),c=n.join(" ")||void 0,s=["eval","<anonymous>"].indexOf(i[0])>-1?void 0:i[0];return new e({functionName:c,fileName:s,lineNumber:i[1],columnNumber:i[2],source:r})},this)},parseFFOrSafari:function(r){return r.stack.split("\n").filter(function(e){return!e.match(a)},this).map(function(r){if(r.indexOf(" > eval")>-1&&(r=r.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===r.indexOf("@")&&-1===r.indexOf(":"))return new e({functionName:r});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,a=r.match(t),n=a&&a[1]?a[1]:void 0,i=this.extractLocation(r.replace(t,""));return new e({functionName:n,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:r})},this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(r){for(var t=/Line (\d+).*script (?:in )?(\S+)/i,a=r.message.split("\n"),n=[],i=2,c=a.length;i<c;i+=2){var s=t.exec(a[i]);s&&n.push(new e({fileName:s[2],lineNumber:s[1],source:a[i]}))}return n},parseOpera10:function(r){for(var t=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,a=r.stacktrace.split("\n"),n=[],i=0,c=a.length;i<c;i+=2){var s=t.exec(a[i]);s&&n.push(new e({functionName:s[3]||void 0,fileName:s[2],lineNumber:s[1],source:a[i]}))}return n},parseOpera11:function(t){return t.stack.split("\n").filter(function(e){return!!e.match(r)&&!e.match(/^Error created at/)},this).map(function(r){var t,a=r.split("@"),n=this.extractLocation(a.pop()),i=a.shift()||"",c=i.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;i.match(/\(([^)]*)\)/)&&(t=i.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var s=void 0===t||"[arguments not available]"===t?void 0:t.split(",");return new e({functionName:c,args:s,fileName:n[0],lineNumber:n[1],columnNumber:n[2],source:r})},this)}}});
//# sourceMappingURL=error-stack-parser.min.js.map