diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 056529c20..eb84fab4a 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -316,7 +316,8 @@ Widget.prototype.getStateQualifier = function(name) { Make a fake widget with specified variables, suitable for variable lookup in filters */ Widget.prototype.makeFakeWidgetWithVariables = function(variables) { - var self = this; + var self = this, + variables = variables || {}; return { getVariable: function(name,opts) { if($tw.utils.hop(variables,name)) { @@ -334,7 +335,7 @@ Widget.prototype.makeFakeWidgetWithVariables = function(variables) { }; } else { opts = opts || {}; - opts.variables = variables; + opts.variables = $tw.utils.extend(variables,opts.variables); return self.getVariableInfo(name,opts); }; }, diff --git a/editions/test/tiddlers/tests/data/functions/FunctionFilterrunVariables3.tid b/editions/test/tiddlers/tests/data/functions/FunctionFilterrunVariables3.tid new file mode 100644 index 000000000..0fc484b16 --- /dev/null +++ b/editions/test/tiddlers/tests/data/functions/FunctionFilterrunVariables3.tid @@ -0,0 +1,21 @@ +title: Functions/FunctionFilterrunVariables3 +description: Nested functions in filter runs that set variables +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +\define currentTiddler() old-current + +\function .inner() [] +\function .outer() [match[intermediate2]then[new-current]] :map[function[.inner]] +\function .wrappertwo() [match[intermediate]addsuffix[2]] :map[function[.outer]] +\function .wrapper() intermediate :map[.wrappertwo[]] + +<$text text={{{ [.wrapper[]] }}}/> + ++ +title: ExpectedResult + +new-current \ No newline at end of file