| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- /**
 
-  * Debugging support for web applications.
 
-  *
 
-  * @author David I. Lehn <dlehn@digitalbazaar.com>
 
-  *
 
-  * Copyright 2008-2013 Digital Bazaar, Inc.
 
-  */
 
- var forge = require('./forge');
 
- /* DEBUG API */
 
- module.exports = forge.debug = forge.debug || {};
 
- // Private storage for debugging.
 
- // Useful to expose data that is otherwise unviewable behind closures.
 
- // NOTE: remember that this can hold references to data and cause leaks!
 
- // format is "forge._debug.<modulename>.<dataname> = data"
 
- // Example:
 
- // (function() {
 
- //   var cat = 'forge.test.Test'; // debugging category
 
- //   var sState = {...}; // local state
 
- //   forge.debug.set(cat, 'sState', sState);
 
- // })();
 
- forge.debug.storage = {};
 
- /**
 
-  * Gets debug data. Omit name for all cat data  Omit name and cat for
 
-  * all data.
 
-  *
 
-  * @param cat name of debugging category.
 
-  * @param name name of data to get (optional).
 
-  * @return object with requested debug data or undefined.
 
-  */
 
- forge.debug.get = function(cat, name) {
 
-   var rval;
 
-   if(typeof(cat) === 'undefined') {
 
-     rval = forge.debug.storage;
 
-   } else if(cat in forge.debug.storage) {
 
-     if(typeof(name) === 'undefined') {
 
-       rval = forge.debug.storage[cat];
 
-     } else {
 
-       rval = forge.debug.storage[cat][name];
 
-     }
 
-   }
 
-   return rval;
 
- };
 
- /**
 
-  * Sets debug data.
 
-  *
 
-  * @param cat name of debugging category.
 
-  * @param name name of data to set.
 
-  * @param data data to set.
 
-  */
 
- forge.debug.set = function(cat, name, data) {
 
-   if(!(cat in forge.debug.storage)) {
 
-     forge.debug.storage[cat] = {};
 
-   }
 
-   forge.debug.storage[cat][name] = data;
 
- };
 
- /**
 
-  * Clears debug data. Omit name for all cat data. Omit name and cat for
 
-  * all data.
 
-  *
 
-  * @param cat name of debugging category.
 
-  * @param name name of data to clear or omit to clear entire category.
 
-  */
 
- forge.debug.clear = function(cat, name) {
 
-   if(typeof(cat) === 'undefined') {
 
-     forge.debug.storage = {};
 
-   } else if(cat in forge.debug.storage) {
 
-     if(typeof(name) === 'undefined') {
 
-       delete forge.debug.storage[cat];
 
-     } else {
 
-       delete forge.debug.storage[cat][name];
 
-     }
 
-   }
 
- };
 
 
  |