summaryrefslogtreecommitdiffstats
path: root/lib/Text/Xslate/Syntax/Handlebars.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Text/Xslate/Syntax/Handlebars.pm')
-rw-r--r--lib/Text/Xslate/Syntax/Handlebars.pm20
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/Text/Xslate/Syntax/Handlebars.pm b/lib/Text/Xslate/Syntax/Handlebars.pm
index c963a87..ac217d9 100644
--- a/lib/Text/Xslate/Syntax/Handlebars.pm
+++ b/lib/Text/Xslate/Syntax/Handlebars.pm
@@ -384,6 +384,16 @@ sub std_block {
$block{$context}{close_tag} = $self->token;
$self->advance;
+ if ($inverted) {
+ ($block{if}, $block{else}) = ($block{else}, $block{if});
+ if (!$block{if}) {
+ $block{if}{body} = $self->literal('');
+ $block{if}{raw_text} = $self->literal('');
+ $block{if}{open_tag} = $block{else}{open_tag};
+ $block{if}{close_tag} = $block{else}{close_tag};
+ }
+ }
+
my $closing_name = $self->expression(0);
if ($closing_name->arity ne 'key' && $closing_name->arity ne 'key_field' && $closing_name->arity ne 'call') {
@@ -411,16 +421,6 @@ sub std_block {
);
}
- if ($inverted) {
- ($block{if}, $block{else}) = ($block{else}, $block{if});
- if (!$block{if}) {
- $block{if}{body} = $self->literal('');
- $block{if}{raw_text} = $self->literal('');
- $block{if}{open_tag} = $block{else}{open_tag};
- $block{if}{close_tag} = $block{else}{close_tag};
- }
- }
-
my $iterations = $self->make_ternary(
$self->call('(is_falsy)', $name->clone),
$self->call('(make_array)', $self->literal(1)),