Cache result of parsing macro calls which don't use text subsitution (#5205)

This commit is contained in:
Jeremy Ruston
2020-12-06 09:43:06 +00:00
committed by GitHub
parent b0f6d50b60
commit 0b1a05d10d
2 changed files with 17 additions and 5 deletions

View File

@@ -113,7 +113,8 @@ Widget.prototype.getVariableInfo = function(name,options) {
// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)
if(parentWidget && name in parentWidget.variables) {
var variable = parentWidget.variables[name],
value = variable.value,
originalValue = variable.value,
value = originalValue,
params = this.resolveVariableParameters(variable.params,actualParams);
// Substitute any parameters specified in the definition
$tw.utils.each(params,function(param) {
@@ -125,7 +126,9 @@ Widget.prototype.getVariableInfo = function(name,options) {
}
return {
text: value,
params: params
params: params,
srcVariable: variable,
isCacheable: originalValue === value
};
}
// If the variable doesn't exist in the parent widget then look for a macro module