a:27:{s:9:"#provides";s:35:"dojox.storage.WhatWGStorageProvider";s:9:"#resource";s:32:"storage/WhatWGStorageProvider.js";s:9:"#requires";a:2:{i:0;a:2:{i:0;s:6:"common";i:1;s:22:"dojox.storage.Provider";}i:1;a:2:{i:0;s:6:"common";i:1;s:21:"dojox.storage.manager";}}s:35:"dojox.storage.WhatWGStorageProvider";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:22:"dojox.storage.Provider";}s:4:"call";a:1:{i:0;s:22:"dojox.storage.Provider";}}s:7:"summary";s:97:"Storage provider that uses WHAT Working Group features in Firefox 2 to achieve permanent storage.";s:11:"description";s:339:"The WHAT WG storage API is documented at http://www.whatwg.org/specs/web-apps/current-work/#scs-client-side You can disable this storage provider with the following djConfig variable: var djConfig = { disableWhatWGStorage: true }; Authors of this storage provider- JB Boisseau, jb.boisseau@eutech-ssii.com Brad Neuberg, bkn3@columbia.edu";s:9:"classlike";b:1;}s:47:"dojox.storage.WhatWGStorageProvider.initialized";a:3:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:8:"instance";s:35:"dojox.storage.WhatWGStorageProvider";s:7:"summary";s:0:"";}s:43:"dojox.storage.WhatWGStorageProvider._domain";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:8:"instance";s:35:"dojox.storage.WhatWGStorageProvider";s:7:"private";b:1;s:7:"summary";s:0:"";}s:46:"dojox.storage.WhatWGStorageProvider._available";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:8:"instance";s:35:"dojox.storage.WhatWGStorageProvider";s:7:"private";b:1;s:7:"summary";s:0:"";}s:50:"dojox.storage.WhatWGStorageProvider._statusHandler";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:8:"instance";s:35:"dojox.storage.WhatWGStorageProvider";s:7:"private";b:1;s:7:"summary";s:0:"";}s:50:"dojox.storage.WhatWGStorageProvider._allNamespaces";a:3:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:7:"private";b:1;s:7:"summary";s:0:"";}s:57:"dojox.storage.WhatWGStorageProvider._storageEventListener";a:3:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:7:"private";b:1;s:7:"summary";s:0:"";}s:46:"dojox.storage.WhatWGStorageProvider.initialize";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:284:" if(dojo.config["disableWhatWGStorage"] == true){ return; } // get current domain this._domain = this._getDomain(); // console.debug(this._domain); // indicate that this storage provider is now loaded this.initialized = true; dojox.storage.manager.loaded(); ";s:7:"summary";s:0:"";}s:47:"dojox.storage.WhatWGStorageProvider.isAvailable";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:189:" try{ var myStorage = globalStorage[this._getDomain()]; }catch(e){ this._available = false; return this._available; } this._available = true; return this._available;";s:7:"summary";s:0:"";}s:39:"dojox.storage.WhatWGStorageProvider.put";a:6:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:10:"parameters";a:4:{s:3:"key";a:1:{s:4:"type";s:0:"";}s:5:"value";a:1:{s:4:"type";s:0:"";}s:14:"resultsHandler";a:1:{s:4:"type";s:0:"";}s:9:"namespace";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:1431:" if(this.isValidKey(key) == false){ throw new Error("Invalid key given: " + key); } namespace = namespace||this.DEFAULT_NAMESPACE; // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); this._statusHandler = resultsHandler; // serialize the value; // handle strings differently so they have better performance if(dojo.isString(value)){ value = "string:" + value; }else{ value = dojo.toJson(value); } // register for successful storage events. var storageListener = dojo.hitch(this, function(evt){ // remove any old storage event listener we might have added // to the window on old put() requests; Firefox has a bug // where it can occassionaly go into infinite loops calling // our storage event listener over and over -- this is a // workaround // FIXME: Simplify this into a test case and submit it // to Firefox window.removeEventListener("storage", storageListener, false); // indicate we succeeded if(resultsHandler){ resultsHandler.call(null, this.SUCCESS, key, null, namespace); } }); window.addEventListener("storage", storageListener, false); // try to store the value try{ var myStorage = globalStorage[this._domain]; myStorage.setItem(key, value); }catch(e){ // indicate we failed this._statusHandler.call(null, this.FAILED, key, e.toString(), namespace); }";s:6:"chains";a:1:{s:4:"call";a:1:{i:0;s:19:"this._statusHandler";}}s:7:"summary";s:0:"";}s:39:"dojox.storage.WhatWGStorageProvider.get";a:5:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"key";a:1:{s:4:"type";s:0:"";}s:9:"namespace";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:1016:" if(this.isValidKey(key) == false){ throw new Error("Invalid key given: " + key); } namespace = namespace||this.DEFAULT_NAMESPACE; // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); // sometimes, even if a key doesn't exist, Firefox // will return a blank string instead of a null -- // this _might_ be due to having underscores in the // keyname, but I am not sure. // FIXME: Simplify this bug into a testcase and // submit it to Firefox var myStorage = globalStorage[this._domain]; var results = myStorage.getItem(key); if(results == null || results == ""){ return null; } results = results.value; // destringify the content back into a // real JavaScript object; // handle strings differently so they have better performance if(dojo.isString(results) && (/^string:/.test(results))){ results = results.substring("string:".length); }else{ results = dojo.fromJson(results); } return results;";s:7:"summary";s:0:"";}s:49:"dojox.storage.WhatWGStorageProvider.getNamespaces";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:587:" var results = [ this.DEFAULT_NAMESPACE ]; // simply enumerate through our array and save any string // that starts with __ var found = {}; var myStorage = globalStorage[this._domain]; var tester = /^__([^_]*)_/; for(var i = 0; i < myStorage.length; i++){ var currentKey = myStorage.key(i); if(tester.test(currentKey) == true){ var currentNS = currentKey.match(tester)[1]; // have we seen this namespace before? if(typeof found[currentNS] == "undefined"){ found[currentNS] = true; results.push(currentNS); } } } return results;";s:7:"summary";s:0:"";}s:43:"dojox.storage.WhatWGStorageProvider.getKeys";a:5:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:9:"namespace";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:978:" namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // create a regular expression to test the beginning // of our key names to see if they match our namespace; // if it is the default namespace then test for the presence // of no namespace for compatibility with older versions // of dojox.storage var namespaceTester; if(namespace == this.DEFAULT_NAMESPACE){ namespaceTester = new RegExp("^([^_]{2}.*)$"); }else{ namespaceTester = new RegExp("^__" + namespace + "_(.*)$"); } var myStorage = globalStorage[this._domain]; var keysArray = []; for(var i = 0; i < myStorage.length; i++){ var currentKey = myStorage.key(i); if(namespaceTester.test(currentKey) == true){ // strip off the namespace portion currentKey = currentKey.match(namespaceTester)[1]; keysArray.push(currentKey); } } return keysArray;";s:7:"summary";s:0:"";}s:41:"dojox.storage.WhatWGStorageProvider.clear";a:5:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:9:"namespace";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:886:" namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // create a regular expression to test the beginning // of our key names to see if they match our namespace; // if it is the default namespace then test for the presence // of no namespace for compatibility with older versions // of dojox.storage var namespaceTester; if(namespace == this.DEFAULT_NAMESPACE){ namespaceTester = new RegExp("^[^_]{2}"); }else{ namespaceTester = new RegExp("^__" + namespace + "_"); } var myStorage = globalStorage[this._domain]; var keys = []; for(var i = 0; i < myStorage.length; i++){ if(namespaceTester.test(myStorage.key(i)) == true){ keys[keys.length] = myStorage.key(i); } } dojo.forEach(keys, dojo.hitch(myStorage, "removeItem"));";s:7:"summary";s:0:"";}s:42:"dojox.storage.WhatWGStorageProvider.remove";a:5:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"key";a:1:{s:4:"type";s:0:"";}s:9:"namespace";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:6746:"dojo.provide("dojox.storage.WhatWGStorageProvider"); dojo.require("dojox.storage.Provider"); dojo.require("dojox.storage.manager"); dojo.declare("dojox.storage.WhatWGStorageProvider", [ dojox.storage.Provider ], { // summary: // Storage provider that uses WHAT Working Group features in Firefox 2 // to achieve permanent storage. // description: // The WHAT WG storage API is documented at // http://www.whatwg.org/specs/web-apps/current-work/#scs-client-side // // You can disable this storage provider with the following djConfig // variable: // var djConfig = { disableWhatWGStorage: true }; // // Authors of this storage provider- // JB Boisseau, jb.boisseau@eutech-ssii.com // Brad Neuberg, bkn3@columbia.edu initialized: false, _domain: null, _available: null, _statusHandler: null, _allNamespaces: null, _storageEventListener: null, initialize: function(){ if(dojo.config["disableWhatWGStorage"] == true){ return; } // get current domain this._domain = this._getDomain(); // console.debug(this._domain); // indicate that this storage provider is now loaded this.initialized = true; dojox.storage.manager.loaded(); }, isAvailable: function(){ try{ var myStorage = globalStorage[this._getDomain()]; }catch(e){ this._available = false; return this._available; } this._available = true; return this._available; }, put: function(key, value, resultsHandler, namespace){ if(this.isValidKey(key) == false){ throw new Error("Invalid key given: " + key); } namespace = namespace||this.DEFAULT_NAMESPACE; // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); this._statusHandler = resultsHandler; // serialize the value; // handle strings differently so they have better performance if(dojo.isString(value)){ value = "string:" + value; }else{ value = dojo.toJson(value); } // register for successful storage events. var storageListener = dojo.hitch(this, function(evt){ // remove any old storage event listener we might have added // to the window on old put() requests; Firefox has a bug // where it can occassionaly go into infinite loops calling // our storage event listener over and over -- this is a // workaround // FIXME: Simplify this into a test case and submit it // to Firefox window.removeEventListener("storage", storageListener, false); // indicate we succeeded if(resultsHandler){ resultsHandler.call(null, this.SUCCESS, key, null, namespace); } }); window.addEventListener("storage", storageListener, false); // try to store the value try{ var myStorage = globalStorage[this._domain]; myStorage.setItem(key, value); }catch(e){ // indicate we failed this._statusHandler.call(null, this.FAILED, key, e.toString(), namespace); } }, get: function(key, namespace){ if(this.isValidKey(key) == false){ throw new Error("Invalid key given: " + key); } namespace = namespace||this.DEFAULT_NAMESPACE; // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); // sometimes, even if a key doesn't exist, Firefox // will return a blank string instead of a null -- // this _might_ be due to having underscores in the // keyname, but I am not sure. // FIXME: Simplify this bug into a testcase and // submit it to Firefox var myStorage = globalStorage[this._domain]; var results = myStorage.getItem(key); if(results == null || results == ""){ return null; } results = results.value; // destringify the content back into a // real JavaScript object; // handle strings differently so they have better performance if(dojo.isString(results) && (/^string:/.test(results))){ results = results.substring("string:".length); }else{ results = dojo.fromJson(results); } return results; }, getNamespaces: function(){ var results = [ this.DEFAULT_NAMESPACE ]; // simply enumerate through our array and save any string // that starts with __ var found = {}; var myStorage = globalStorage[this._domain]; var tester = /^__([^_]*)_/; for(var i = 0; i < myStorage.length; i++){ var currentKey = myStorage.key(i); if(tester.test(currentKey) == true){ var currentNS = currentKey.match(tester)[1]; // have we seen this namespace before? if(typeof found[currentNS] == "undefined"){ found[currentNS] = true; results.push(currentNS); } } } return results; }, getKeys: function(namespace){ namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // create a regular expression to test the beginning // of our key names to see if they match our namespace; // if it is the default namespace then test for the presence // of no namespace for compatibility with older versions // of dojox.storage var namespaceTester; if(namespace == this.DEFAULT_NAMESPACE){ namespaceTester = new RegExp("^([^_]{2}.*)$"); }else{ namespaceTester = new RegExp("^__" + namespace + "_(.*)$"); } var myStorage = globalStorage[this._domain]; var keysArray = []; for(var i = 0; i < myStorage.length; i++){ var currentKey = myStorage.key(i); if(namespaceTester.test(currentKey) == true){ // strip off the namespace portion currentKey = currentKey.match(namespaceTester)[1]; keysArray.push(currentKey); } } return keysArray; }, clear: function(namespace){ namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // create a regular expression to test the beginning // of our key names to see if they match our namespace; // if it is the default namespace then test for the presence // of no namespace for compatibility with older versions // of dojox.storage var namespaceTester; if(namespace == this.DEFAULT_NAMESPACE){ namespaceTester = new RegExp("^[^_]{2}"); }else{ namespaceTester = new RegExp("^__" + namespace + "_"); } var myStorage = globalStorage[this._domain]; var keys = []; for(var i = 0; i < myStorage.length; i++){ if(namespaceTester.test(myStorage.key(i)) == true){ keys[keys.length] = myStorage.key(i); } } dojo.forEach(keys, dojo.hitch(myStorage, "removeItem")); }, remove: function(key, namespace){ // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); var myStorage = globalStorage[this._domain]; myStorage.removeItem(key);";s:7:"summary";s:0:"";}s:47:"dojox.storage.WhatWGStorageProvider.isPermanent";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:14:" return true;";s:7:"summary";s:0:"";}s:50:"dojox.storage.WhatWGStorageProvider.getMaximumSize";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:28:" return this.SIZE_NO_LIMIT;";s:7:"summary";s:0:"";}s:49:"dojox.storage.WhatWGStorageProvider.hasSettingsUI";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:15:" return false;";s:7:"summary";s:0:"";}s:50:"dojox.storage.WhatWGStorageProvider.showSettingsUI";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:94:" throw new Error(this.declaredClass + " does not support a storage settings user-interface");";s:7:"summary";s:0:"";}s:50:"dojox.storage.WhatWGStorageProvider.hideSettingsUI";a:4:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:94:" throw new Error(this.declaredClass + " does not support a storage settings user-interface");";s:7:"summary";s:0:"";}s:46:"dojox.storage.WhatWGStorageProvider.getFullKey";a:5:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"key";a:1:{s:4:"type";s:0:"";}s:9:"namespace";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:399:" namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // don't append a namespace string for the default namespace, // for compatibility with older versions of dojox.storage if(namespace == this.DEFAULT_NAMESPACE){ return key; }else{ return "__" + namespace + "_" + key; }";s:7:"summary";s:0:"";}s:46:"dojox.storage.WhatWGStorageProvider._getDomain";a:5:{s:9:"prototype";s:35:"dojox.storage.WhatWGStorageProvider";s:4:"type";s:8:"Function";s:6:"source";s:7832:"dojo.provide("dojox.storage.WhatWGStorageProvider"); dojo.require("dojox.storage.Provider"); dojo.require("dojox.storage.manager"); dojo.declare("dojox.storage.WhatWGStorageProvider", [ dojox.storage.Provider ], { // summary: // Storage provider that uses WHAT Working Group features in Firefox 2 // to achieve permanent storage. // description: // The WHAT WG storage API is documented at // http://www.whatwg.org/specs/web-apps/current-work/#scs-client-side // // You can disable this storage provider with the following djConfig // variable: // var djConfig = { disableWhatWGStorage: true }; // // Authors of this storage provider- // JB Boisseau, jb.boisseau@eutech-ssii.com // Brad Neuberg, bkn3@columbia.edu initialized: false, _domain: null, _available: null, _statusHandler: null, _allNamespaces: null, _storageEventListener: null, initialize: function(){ if(dojo.config["disableWhatWGStorage"] == true){ return; } // get current domain this._domain = this._getDomain(); // console.debug(this._domain); // indicate that this storage provider is now loaded this.initialized = true; dojox.storage.manager.loaded(); }, isAvailable: function(){ try{ var myStorage = globalStorage[this._getDomain()]; }catch(e){ this._available = false; return this._available; } this._available = true; return this._available; }, put: function(key, value, resultsHandler, namespace){ if(this.isValidKey(key) == false){ throw new Error("Invalid key given: " + key); } namespace = namespace||this.DEFAULT_NAMESPACE; // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); this._statusHandler = resultsHandler; // serialize the value; // handle strings differently so they have better performance if(dojo.isString(value)){ value = "string:" + value; }else{ value = dojo.toJson(value); } // register for successful storage events. var storageListener = dojo.hitch(this, function(evt){ // remove any old storage event listener we might have added // to the window on old put() requests; Firefox has a bug // where it can occassionaly go into infinite loops calling // our storage event listener over and over -- this is a // workaround // FIXME: Simplify this into a test case and submit it // to Firefox window.removeEventListener("storage", storageListener, false); // indicate we succeeded if(resultsHandler){ resultsHandler.call(null, this.SUCCESS, key, null, namespace); } }); window.addEventListener("storage", storageListener, false); // try to store the value try{ var myStorage = globalStorage[this._domain]; myStorage.setItem(key, value); }catch(e){ // indicate we failed this._statusHandler.call(null, this.FAILED, key, e.toString(), namespace); } }, get: function(key, namespace){ if(this.isValidKey(key) == false){ throw new Error("Invalid key given: " + key); } namespace = namespace||this.DEFAULT_NAMESPACE; // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); // sometimes, even if a key doesn't exist, Firefox // will return a blank string instead of a null -- // this _might_ be due to having underscores in the // keyname, but I am not sure. // FIXME: Simplify this bug into a testcase and // submit it to Firefox var myStorage = globalStorage[this._domain]; var results = myStorage.getItem(key); if(results == null || results == ""){ return null; } results = results.value; // destringify the content back into a // real JavaScript object; // handle strings differently so they have better performance if(dojo.isString(results) && (/^string:/.test(results))){ results = results.substring("string:".length); }else{ results = dojo.fromJson(results); } return results; }, getNamespaces: function(){ var results = [ this.DEFAULT_NAMESPACE ]; // simply enumerate through our array and save any string // that starts with __ var found = {}; var myStorage = globalStorage[this._domain]; var tester = /^__([^_]*)_/; for(var i = 0; i < myStorage.length; i++){ var currentKey = myStorage.key(i); if(tester.test(currentKey) == true){ var currentNS = currentKey.match(tester)[1]; // have we seen this namespace before? if(typeof found[currentNS] == "undefined"){ found[currentNS] = true; results.push(currentNS); } } } return results; }, getKeys: function(namespace){ namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // create a regular expression to test the beginning // of our key names to see if they match our namespace; // if it is the default namespace then test for the presence // of no namespace for compatibility with older versions // of dojox.storage var namespaceTester; if(namespace == this.DEFAULT_NAMESPACE){ namespaceTester = new RegExp("^([^_]{2}.*)$"); }else{ namespaceTester = new RegExp("^__" + namespace + "_(.*)$"); } var myStorage = globalStorage[this._domain]; var keysArray = []; for(var i = 0; i < myStorage.length; i++){ var currentKey = myStorage.key(i); if(namespaceTester.test(currentKey) == true){ // strip off the namespace portion currentKey = currentKey.match(namespaceTester)[1]; keysArray.push(currentKey); } } return keysArray; }, clear: function(namespace){ namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // create a regular expression to test the beginning // of our key names to see if they match our namespace; // if it is the default namespace then test for the presence // of no namespace for compatibility with older versions // of dojox.storage var namespaceTester; if(namespace == this.DEFAULT_NAMESPACE){ namespaceTester = new RegExp("^[^_]{2}"); }else{ namespaceTester = new RegExp("^__" + namespace + "_"); } var myStorage = globalStorage[this._domain]; var keys = []; for(var i = 0; i < myStorage.length; i++){ if(namespaceTester.test(myStorage.key(i)) == true){ keys[keys.length] = myStorage.key(i); } } dojo.forEach(keys, dojo.hitch(myStorage, "removeItem")); }, remove: function(key, namespace){ // get our full key name, which is namespace + key key = this.getFullKey(key, namespace); var myStorage = globalStorage[this._domain]; myStorage.removeItem(key); }, isPermanent: function(){ return true; }, getMaximumSize: function(){ return this.SIZE_NO_LIMIT; }, hasSettingsUI: function(){ return false; }, showSettingsUI: function(){ throw new Error(this.declaredClass + " does not support a storage settings user-interface"); }, hideSettingsUI: function(){ throw new Error(this.declaredClass + " does not support a storage settings user-interface"); }, getFullKey: function(key, namespace){ namespace = namespace||this.DEFAULT_NAMESPACE; if(this.isValidKey(namespace) == false){ throw new Error("Invalid namespace given: " + namespace); } // don't append a namespace string for the default namespace, // for compatibility with older versions of dojox.storage if(namespace == this.DEFAULT_NAMESPACE){ return key; }else{ return "__" + namespace + "_" + key; } }, _getDomain: function(){ // see: https://bugzilla.mozilla.org/show_bug.cgi?id=357323 return ((location.hostname == "localhost" && dojo.isFF && dojo.isFF < 3) ? "localhost.localdomain" : location.hostname);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:13:"dojox.storage";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}