Skip to content

Commit 3d4dc31

Browse files
authored
Freeze src in initialize (#105)
1 parent c0e7d5f commit 3d4dc31

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

lib/erb.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,7 @@ def initialize(str, trim_mode: nil, eoutvar: '_erbout')
833833
compiler = make_compiler(trim_mode)
834834
set_eoutvar(compiler, eoutvar)
835835
@src, @encoding, @frozen_string = *compiler.compile(str)
836+
@src.freeze
836837
@filename = nil
837838
@lineno = 0
838839
@_init = self.class.singleton_class

test/erb/test_erb.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -598,10 +598,10 @@ def stags
598598
def test_frozen_string_literal
599599
bug12031 = '[ruby-core:73561] [Bug #12031]'
600600
e = @erb.new("<%#encoding: us-ascii%>a")
601-
e.src.sub!(/\A#(?:-\*-)?(.*)(?:-\*-)?/) {
601+
src = e.src.sub(/\A#(?:-\*-)?(.*)(?:-\*-)?/) {
602602
'# -*- \1; frozen-string-literal: true -*-'
603603
}
604-
assert_equal("a", e.result, bug12031)
604+
assert_equal("a", eval(src), bug12031)
605605

606606
%w(false true).each do |flag|
607607
erb = @erb.new("<%#frozen-string-literal: #{flag}%><%=''.frozen?%>")

0 commit comments

Comments
 (0)