diff options
| author | Masaki Muranaka <[email protected]> | 2012-06-15 13:06:43 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2012-06-15 13:06:43 +0900 |
| commit | cfd5f5157d06f9c62a04660843c3c02014d8a3a5 (patch) | |
| tree | 443606b38dfa193f029506002cc57ca0782ea4aa | |
| parent | ccec3da35bb2a6fff9fb58c30645b02692996f8b (diff) | |
| download | mruby-cfd5f5157d06f9c62a04660843c3c02014d8a3a5.tar.gz mruby-cfd5f5157d06f9c62a04660843c3c02014d8a3a5.zip | |
Move Subclasses of ScriptError to mrblib.
| -rw-r--r-- | mrblib/error.rb | 8 | ||||
| -rw-r--r-- | src/error.c | 3 | ||||
| -rw-r--r-- | test/t/exception.rb | 30 |
3 files changed, 38 insertions, 3 deletions
diff --git a/mrblib/error.rb b/mrblib/error.rb index 3fa7f21e3..1cb2b1150 100644 --- a/mrblib/error.rb +++ b/mrblib/error.rb @@ -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 diff --git a/src/error.c b/src/error.c index 548527f07..590fad5a5 100644 --- a/src/error.c +++ b/src/error.c @@ -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 */ diff --git a/test/t/exception.rb b/test/t/exception.rb index 22795161f..d7226a368 100644 --- a/test/t/exception.rb +++ b/test/t/exception.rb @@ -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 |
