summaryrefslogtreecommitdiff
path: root/js/dojo-1.6/dojox/lang/aspect/memoizerGuard.xd.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--js/dojo-1.6/dojox/lang/aspect/memoizerGuard.xd.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/lang/aspect/memoizerGuard.xd.js b/js/dojo-1.6/dojox/lang/aspect/memoizerGuard.xd.js
new file mode 100644
index 0000000..c4073ab
--- /dev/null
+++ b/js/dojo-1.6/dojox/lang/aspect/memoizerGuard.xd.js
@@ -0,0 +1,48 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.lang.aspect.memoizerGuard"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.lang.aspect.memoizerGuard"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.lang.aspect.memoizerGuard"] = true;
+dojo.provide("dojox.lang.aspect.memoizerGuard");
+
+(function(){
+ var aop = dojox.lang.aspect,
+ reset = function(/*String|Array?*/ method){
+ var that = aop.getContext().instance, t;
+ if(!(t = that.__memoizerCache)){ return; }
+ if(arguments.length == 0){
+ delete that.__memoizerCache;
+ }else if(dojo.isArray(method)){
+ dojo.forEach(method, function(m){ delete t[m]; });
+ }else{
+ delete t[method];
+ }
+ };
+
+
+ aop.memoizerGuard = function(/*String|Array?*/ method){
+ // summary:
+ // Invalidates the memoizer's cache (see dojox.lang.aspect.memoizer)
+ // after calling certain methods.
+ //
+ // method:
+ // Optional method's name to be guarded: only cache for
+ // this method will be invalidated on call. Can be a string
+ // or an array of method names. If omitted the whole cache
+ // will be invalidated.
+
+ return { // Object
+ after: function(){ reset(method); }
+ };
+ };
+})();
+
+}
+
+}};});