diff options
Diffstat (limited to 'js/dojo/dojox/lang/aspect/memoizerGuard.js')
| -rw-r--r-- | js/dojo/dojox/lang/aspect/memoizerGuard.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/dojo/dojox/lang/aspect/memoizerGuard.js b/js/dojo/dojox/lang/aspect/memoizerGuard.js new file mode 100644 index 0000000..81f5e52 --- /dev/null +++ b/js/dojo/dojox/lang/aspect/memoizerGuard.js @@ -0,0 +1,37 @@ +//>>built +// wrapped by build app +define("dojox/lang/aspect/memoizerGuard", ["dijit","dojo","dojox"], function(dijit,dojo,dojox){ +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); } + }; + }; +})(); +}); |
