summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/10error.rb3
-rw-r--r--mrblib/string.rb4
2 files changed, 5 insertions, 2 deletions
diff --git a/mrblib/10error.rb b/mrblib/10error.rb
index 22a8d1ad7..0d9f38d58 100644
--- a/mrblib/10error.rb
+++ b/mrblib/10error.rb
@@ -51,6 +51,9 @@ end
class NotImplementedError < ScriptError
end
+class FrozenError < RuntimeError
+end
+
class StopIteration < IndexError
attr_accessor :result
end
diff --git a/mrblib/string.rb b/mrblib/string.rb
index 4c6114ecb..ee98cfa0c 100644
--- a/mrblib/string.rb
+++ b/mrblib/string.rb
@@ -96,7 +96,7 @@ class String
#
# ISO 15.2.10.5.19
def gsub!(*args, &block)
- raise RuntimeError, "can't modify frozen String" if frozen?
+ raise FrozenError, "can't modify frozen String" if frozen?
return to_enum(:gsub!, *args) if args.length == 1 && !block
str = self.gsub(*args, &block)
return nil if str == self
@@ -159,7 +159,7 @@ class String
#
# ISO 15.2.10.5.37
def sub!(*args, &block)
- raise RuntimeError, "can't modify frozen String" if frozen?
+ raise FrozenError, "can't modify frozen String" if frozen?
str = self.sub(*args, &block)
return nil if str == self
self.replace(str)