diff options
Diffstat (limited to 'lib/Text/Xslate/Syntax/Handlebars.pm')
-rw-r--r-- | lib/Text/Xslate/Syntax/Handlebars.pm | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Text/Xslate/Syntax/Handlebars.pm b/lib/Text/Xslate/Syntax/Handlebars.pm index fe2f083..c575702 100644 --- a/lib/Text/Xslate/Syntax/Handlebars.pm +++ b/lib/Text/Xslate/Syntax/Handlebars.pm @@ -401,7 +401,7 @@ sub std_block { '(run_block_helper)', $self->symbol($name->first->id)->clone, $raw_text->clone, - $self->symbol('(vars)')->clone(arity => 'vars'), + $self->vars, @{ $name->second }, ), ); @@ -459,7 +459,7 @@ sub std_block { : ([ $self->call( '(new_vars_for)', - $self->symbol('(vars)')->clone(arity => 'vars'), + $self->vars, $name->clone, $self->symbol('(iterator)')->clone( arity => 'iterator', @@ -479,7 +479,7 @@ sub std_block { $self->call( '(run_code)', $name->clone, - $self->symbol('(vars)')->clone(arity => 'vars'), + $self->vars, $open_tag->clone, $close_tag->clone, $raw_text->clone, @@ -622,12 +622,17 @@ sub check_lambda { $self->call( '(run_code)', $var->clone, - $self->symbol('(vars)')->clone(arity => 'vars'), + $self->vars, ), $var, ); } +sub vars { + my $self = shift; + return $self->symbol('(vars)')->clone(arity => 'vars'); +} + sub _field_to_string { my $self = shift; my ($symbol) = @_; |