You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
910 B
33 lines
910 B
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); } |
|
}; |
|
}; |
|
})(); |