blob: fe18bf627cfb13c1c282274b1119c63d93f3ef94 [file] [log] [blame]
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r():"function"==typeof define&&define.amd?define(r):r()}(0,function(){"use strict";var t=function(){return(t=Object.assign||function(t){for(var r,a=1,e=arguments.length;a<e;a++)for(var n in r=arguments[a])Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n]);return t}).apply(this,arguments)},r="\n",a={},e="STACKTRACE TRACKING",n="__SEP_TAG__",c=n+"@[native]",o=function(){return function(){this.error=u(),this.timestamp=new Date}}();function i(){return new Error(e)}function s(){try{throw i()}catch(t){return t}}var _=i(),f=s(),u=_.stack?i:f.stack?s:i;function l(t){return t.stack?t.stack.split(r):[]}function k(t,r){for(var e=l(r),n=0;n<e.length;n++){var c=e[n];a.hasOwnProperty(c)||t.push(e[n])}}function h(t,a){var e=[a?a.trim():""];if(t)for(var o=(new Date).getTime(),i=0;i<t.length;i++){var s=t[i],_=s.timestamp,f="____________________Elapsed "+(o-_.getTime())+" ms; At: "+_;f=f.replace(/[^\w\d]/g,"_"),e.push(c.replace(n,f)),k(e,s.error),o=_.getTime()}return e.join(r)}Zone.longStackTraceZoneSpec={name:"long-stack-trace",longStackTraceLimit:10,getLongStackTrace:function(t){if(t){var r=t[Zone.__symbol__("currentTaskTrace")];return r?h(r,t.stack):t.stack}},onScheduleTask:function(r,a,e,n){if(Error.stackTraceLimit>0){var c=Zone.currentTask,i=c&&c.data&&c.data.__creationTrace__||[];(i=[new o].concat(i)).length>this.longStackTraceLimit&&(i.length=this.longStackTraceLimit),n.data||(n.data={}),"eventTask"===n.type&&(n.data=t({},n.data)),n.data.__creationTrace__=i}return r.scheduleTask(e,n)},onHandleError:function(t,r,a,e){if(Error.stackTraceLimit>0){var n=Zone.currentTask||e.task;if(e instanceof Error&&n){var c=h(n.data&&n.data.__creationTrace__,e.stack);try{e.stack=e.longStack=c}catch(t){}}}return t.handleError(a,e)}},function(){if(!(Error.stackTraceLimit<=0)){var t=[];!function t(r,a){a>0&&(r.push(l((new o).error)),t(r,a-1))}(t,2);for(var r=t[0],i=t[1],s=0;s<r.length;s++)if(-1==(f=r[s]).indexOf(e)){var _=f.match(/^\s*at\s+/);if(_){c=_[0]+n+" (http://localhost)";break}}for(s=0;s<r.length;s++){var f;if((f=r[s])!==i[s])break;a[f]=!0}}}()});