From 5170de4d15d7ff92f3c2a1897caa91928a8855ed Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 14 Oct 2012 13:20:05 -0500 Subject: make_array doesn't need to be a function --- lib/Text/Handlebars.pm | 4 ---- lib/Text/Handlebars/Compiler.pm | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm index 29123be..4d0a137 100644 --- a/lib/Text/Handlebars.pm +++ b/lib/Text/Handlebars.pm @@ -133,10 +133,6 @@ sub default_functions { return !$val; } }, - '(make_array)' => sub { - my ($length) = @_; - return [(undef) x $length]; - }, '(make_hash)' => sub { my (%hash) = @_; return \%hash; diff --git a/lib/Text/Handlebars/Compiler.pm b/lib/Text/Handlebars/Compiler.pm index 77c4726..d713fc1 100644 --- a/lib/Text/Handlebars/Compiler.pm +++ b/lib/Text/Handlebars/Compiler.pm @@ -127,11 +127,11 @@ sub _generate_block { my $iterations = $self->make_ternary( $self->call($node, '(is_falsy)', $name->clone), - $self->call($node, '(make_array)', $self->parser->literal(1)), + $self->make_array($self->parser->literal(1)), $self->make_ternary( $self->is_array_ref($name->clone), $name->clone, - $self->call($node, '(make_array)', $self->parser->literal(1)), + $self->make_array($self->parser->literal(1)), ), ); @@ -277,6 +277,16 @@ sub is_array_ref { ); } +sub make_array { + my $self = shift; + my (@contents) = @_; + + return $self->parser->symbol('[')->clone( + arity => 'composer', + first => \@contents, + ); +} + __PACKAGE__->meta->make_immutable; no Any::Moose; -- cgit v1.2.3