33 lines
670 B
JavaScript
33 lines
670 B
JavaScript
|
dojo.provide("dojox.lang.aspect.timer");
|
||
|
|
||
|
(function(){
|
||
|
var aop = dojox.lang.aspect,
|
||
|
uniqueNumber = 0;
|
||
|
|
||
|
var Timer = function(name){
|
||
|
this.name = name || ("DojoAopTimer #" + ++uniqueNumber);
|
||
|
this.inCall = 0;
|
||
|
};
|
||
|
dojo.extend(Timer, {
|
||
|
before: function(/*arguments*/){
|
||
|
if(!(this.inCall++)){
|
||
|
console.time(this.name);
|
||
|
}
|
||
|
},
|
||
|
after: function(/*excp*/){
|
||
|
if(!--this.inCall){
|
||
|
console.timeEnd(this.name);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
aop.timer = function(/*String?*/ name){
|
||
|
// summary:
|
||
|
// Returns an object, which can be used to time calls to methods.
|
||
|
//
|
||
|
// name:
|
||
|
// The optional unique name of the timer.
|
||
|
|
||
|
return new Timer(name); // Object
|
||
|
};
|
||
|
})();
|