summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-15 00:42:07 -0500
committerJesse Luehrs <doy@tozt.net>2013-01-02 13:56:20 -0600
commit01c2301937d6c0029408a40fa5e4a5c868516e4c (patch)
tree07060c2370190584adfc91c63a49bc5e131442cb
parent9182f9a9db2c347549bd7557b042f41f41d22619 (diff)
downloadtext-handlebars-01c2301937d6c0029408a40fa5e4a5c868516e4c.tar.gz
text-handlebars-01c2301937d6c0029408a40fa5e4a5c868516e4c.zip
turned render_string into an opcode
-rw-r--r--lib/Text/Handlebars.pm4
-rw-r--r--lib/Text/Handlebars/Compiler.pm12
2 files changed, 5 insertions, 11 deletions
diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm
index 68c8d1f..154a78b 100644
--- a/lib/Text/Handlebars.pm
+++ b/lib/Text/Handlebars.pm
@@ -164,10 +164,6 @@ sub _register_builtin_methods {
my ($funcs) = @_;
weaken(my $weakself = $self);
- $funcs->{'(render_string)'} = sub {
- my ($to_render, $vars) = @_;
- return $weakself->render_string($to_render, $vars);
- };
$funcs->{'(find_file)'} = sub {
my ($filename) = @_;
return $filename if try { $weakself->find_file($filename); 1 };
diff --git a/lib/Text/Handlebars/Compiler.pm b/lib/Text/Handlebars/Compiler.pm
index cf4ad39..251050b 100644
--- a/lib/Text/Handlebars/Compiler.pm
+++ b/lib/Text/Handlebars/Compiler.pm
@@ -207,7 +207,7 @@ sub is_unary {
my ($id) = @_;
my %unary = (
- map { $_ => 1 } qw(builtin_is_array_ref is_code_ref)
+ map { $_ => 1 } qw(builtin_is_array_ref is_code_ref render_string)
);
return $unary{$id};
@@ -250,12 +250,10 @@ sub _generate_run_code {
);
}
- # XXX turn this into an opcode
- my $render_string = $self->call(
- $node,
- '(render_string)',
- $to_render,
- $self->vars,
+ my $render_string = $self->parser->symbol('(render_string)')->clone(
+ id => 'render_string',
+ arity => 'unary',
+ first => $to_render,
);
return $self->compile_ast($render_string);