profiler.js 802 B

123456789101112131415161718192021222324252627282930313233343536
  1. // wrapped by build app
  2. define("dojox/lang/aspect/profiler", ["dijit","dojo","dojox"], function(dijit,dojo,dojox){
  3. dojo.provide("dojox.lang.aspect.profiler");
  4. (function(){
  5. var aop = dojox.lang.aspect,
  6. uniqueNumber = 0;
  7. var Profiler = function(title){
  8. this.args = title ? [title] : [];
  9. this.inCall = 0;
  10. };
  11. dojo.extend(Profiler, {
  12. before: function(/*arguments*/){
  13. if(!(this.inCall++)){
  14. console.profile.apply(console, this.args);
  15. }
  16. },
  17. after: function(/*excp*/){
  18. if(!--this.inCall){
  19. console.profileEnd();
  20. }
  21. }
  22. });
  23. aop.profiler = function(/*String?*/ title){
  24. // summary:
  25. // Returns an object, which can be used to time calls to methods.
  26. //
  27. // title:
  28. // The optional name of the profile section.
  29. return new Profiler(title); // Object
  30. };
  31. })();
  32. });