source: Dev/trunk/src/client/dojox/lang/aspect/tracer.js @ 532

Last change on this file since 532 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 1.3 KB
Line 
1dojo.provide("dojox.lang.aspect.tracer");
2
3(function(){
4        var aop = dojox.lang.aspect;
5       
6        var Tracer = function(/*Boolean*/ grouping){
7                this.method   = grouping ? "group" : "log";
8                if(grouping){
9                        this.after = this._after;
10                }
11        };
12        dojo.extend(Tracer, {
13                before: function(/*arguments*/){
14                        var context = aop.getContext(), joinPoint = context.joinPoint,
15                                args = Array.prototype.join.call(arguments, ", ");
16                        console[this.method](context.instance, "=>", joinPoint.targetName + "(" + args + ")");
17                },
18                afterReturning: function(retVal){
19                        var joinPoint = aop.getContext().joinPoint;
20                        if(typeof retVal != "undefined"){
21                                console.log(joinPoint.targetName + "() returns:", retVal);
22                        }else{
23                                console.log(joinPoint.targetName + "() returns");
24                        }
25                },
26                afterThrowing: function(excp){
27                        console.log(aop.getContext().joinPoint.targetName + "() throws:", excp);
28                },
29                _after: function(excp){
30                        console.groupEnd();
31                }
32        });
33       
34        aop.tracer = function(/*Boolean*/ grouping){
35                // summary:
36                //              Returns an object, which can be used to trace calls with Firebug's console.
37                //              Prints argument, a return value, or an exception.
38                //
39                // grouping:
40                //              The flag to group output. If true, indents embedded console messages.
41       
42                return new Tracer(grouping);    // Object
43        };
44})();
Note: See TracBrowser for help on using the repository browser.