diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-15 00:42:07 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-01-02 13:56:20 -0600 |
commit | 01c2301937d6c0029408a40fa5e4a5c868516e4c (patch) | |
tree | 07060c2370190584adfc91c63a49bc5e131442cb | |
parent | 9182f9a9db2c347549bd7557b042f41f41d22619 (diff) | |
download | text-handlebars-01c2301937d6c0029408a40fa5e4a5c868516e4c.tar.gz text-handlebars-01c2301937d6c0029408a40fa5e4a5c868516e4c.zip |
turned render_string into an opcode
-rw-r--r-- | lib/Text/Handlebars.pm | 4 | ||||
-rw-r--r-- | lib/Text/Handlebars/Compiler.pm | 12 |
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); |