summaryrefslogtreecommitdiff
path: root/lib/erb.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/erb.rb')
-rw-r--r--lib/erb.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/erb.rb b/lib/erb.rb
index 72da7cde98..215a3f516f 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -864,10 +864,13 @@ class ERB
#
def result(b=new_toplevel)
if @safe_level
- proc {
+ proc do
+ prev_safe_level = $SAFE
$SAFE = @safe_level
eval(@src, b, (@filename || '(erb)'), @lineno)
- }.call
+ ensure
+ $SAFE = prev_safe_level
+ end.call
else
eval(@src, b, (@filename || '(erb)'), @lineno)
end