From 0fd3fe001d5f0862200f6fb69b289b42518c0a6b Mon Sep 17 00:00:00 2001 From: hsbt Date: Tue, 15 Dec 2015 07:20:07 +0000 Subject: * lib/erb.rb: Render erb with array buffer for function call optimization. [fix GH-1143] * lib/rdoc/erb_partial.rb: ditto. * template/verconf.h.tmpl: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/erb.rb | 10 +++++----- lib/rdoc/erb_partial.rb | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/erb.rb b/lib/erb.rb index b099c82ff7..7b328bffb0 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -589,7 +589,7 @@ class ERB end def add_insert_cmd(out, content) - out.push("#{@insert_cmd}((#{content}).to_s)") + out.push("#{@insert_cmd}((#{content}))") end # Compiles an ERB template into Ruby code. Returns an array of the code @@ -834,10 +834,10 @@ class ERB # requires the setup of an ERB _compiler_ object. # def set_eoutvar(compiler, eoutvar = '_erbout') - compiler.put_cmd = "#{eoutvar}.concat" - compiler.insert_cmd = "#{eoutvar}.concat" - compiler.pre_cmd = ["#{eoutvar} = ''"] - compiler.post_cmd = ["#{eoutvar}.force_encoding(__ENCODING__)"] + compiler.put_cmd = "#{eoutvar}.push" + compiler.insert_cmd = "#{eoutvar}.push" + compiler.pre_cmd = ["#{eoutvar} = []"] + compiler.post_cmd = ["#{eoutvar}.join.force_encoding(__ENCODING__)"] end # Generate results and print them. (see ERB#result) diff --git a/lib/rdoc/erb_partial.rb b/lib/rdoc/erb_partial.rb index 910d1e0351..8359258d27 100644 --- a/lib/rdoc/erb_partial.rb +++ b/lib/rdoc/erb_partial.rb @@ -11,7 +11,7 @@ class RDoc::ERBPartial < ERB def set_eoutvar compiler, eoutvar = '_erbout' super - compiler.pre_cmd = ["#{eoutvar} ||= ''"] + compiler.pre_cmd = ["#{eoutvar} ||= []"] end end -- cgit v1.2.3