33 lines
910 B
JavaScript
33 lines
910 B
JavaScript
|
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); }
|
||
|
};
|
||
|
};
|
||
|
})();
|