Move Subclasses of ScriptError to mrblib.

This commit is contained in:
Masaki Muranaka
2012-06-15 13:06:43 +09:00
parent ccec3da35b
commit cfd5f5157d
3 changed files with 38 additions and 3 deletions
+8
View File
@@ -17,5 +17,13 @@ end
class ScriptError < Exception
end
# ISO 15.2.38
class SyntaxError < ScriptError
end
# ISO 15.2.39
class LoadError < ScriptError
end
class NotImplementedError < ScriptError
end
-3
View File
@@ -385,9 +385,6 @@ mrb_init_exception(mrb_state *mrb)
eNameError = mrb_define_class(mrb, "NameError", mrb->eStandardError_class); /* 15.2.31 */
mrb_define_class(mrb, "NoMethodError", eNameError); /* 15.2.32 */
// eScriptError = mrb_define_class(mrb, "ScriptError", mrb->eException_class); /* 15.2.37 */
// mrb_define_class(mrb, "SyntaxError", eScriptError); /* 15.2.38 */
// mrb_define_class(mrb, "LoadError", eScriptError); /* 15.2.39 */
// mrb_define_class(mrb, "SystemCallError", mrb->eStandardError_class); /* 15.2.36 */
mrb_define_class(mrb, "LocalJumpError", mrb->eStandardError_class); /* 15.2.25 */
+30
View File
@@ -41,6 +41,36 @@ assert('Exception.exception', '15.2.22.4.1') do
e.message == 'a'
end
assert('ScriptError', '15.2.37') do
begin
raise ScriptError.new
rescue ScriptError
true
else
false
end
end
assert('SyntaxError', '15.2.38') do
begin
raise SyntaxError.new
rescue SyntaxError
true
else
false
end
end
assert('LoadError', '15.2.39') do
begin
raise LoadError.new
rescue LoadError
true
else
false
end
end
# Not ISO specified
assert('Exception 1') do