]> git.wh0rd.org - tt-rss.git/blob - lib/dojo/promise/instrumentation.js
086b49a25c135b6b3661465198b392b0cd6d8eab
[tt-rss.git] / lib / dojo / promise / instrumentation.js
1 /*
2 Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
5 */
6
7 //>>built
8 define("dojo/promise/instrumentation",["./tracer","../has","../_base/lang","../_base/array"],function(_1,_2,_3,_4){function _5(_6,_7,_8){var _9="";if(_6&&_6.stack){_9+=_6.stack;}if(_7&&_7.stack){_9+="\n ----------------------------------------\n rejected"+_7.stack.split("\n").slice(1).join("\n").replace(/^\s+/," ");}if(_8&&_8.stack){_9+="\n ----------------------------------------\n"+_8.stack;}console.error(_6,_9);};function _a(_b,_c,_d,_e){if(!_c){_5(_b,_d,_e);}};var _f=[];var _10=false;var _11=1000;function _12(_13,_14,_15,_16){if(_14){_4.some(_f,function(obj,ix){if(obj.error===_13){_f.splice(ix,1);return true;}});}else{if(!_4.some(_f,function(obj){return obj.error===_13;})){_f.push({error:_13,rejection:_15,deferred:_16,timestamp:new Date().getTime()});}}if(!_10){_10=setTimeout(_17,_11);}};function _17(){var now=new Date().getTime();var _18=now-_11;_f=_4.filter(_f,function(obj){if(obj.timestamp<_18){_5(obj.error,obj.rejection,obj.deferred);return false;}return true;});if(_f.length){_10=setTimeout(_17,_f[0].timestamp+_11-now);}else{_10=false;}};return function(_19){var _1a=_2("config-useDeferredInstrumentation");if(_1a){_1.on("resolved",_3.hitch(console,"log","resolved"));_1.on("rejected",_3.hitch(console,"log","rejected"));_1.on("progress",_3.hitch(console,"log","progress"));var _1b=[];if(typeof _1a==="string"){_1b=_1a.split(",");_1a=_1b.shift();}if(_1a==="report-rejections"){_19.instrumentRejected=_a;}else{if(_1a==="report-unhandled-rejections"||_1a===true||_1a===1){_19.instrumentRejected=_12;_11=parseInt(_1b[0],10)||_11;}else{throw new Error("Unsupported instrumentation usage <"+_1a+">");}}}};});