diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-06-23 18:00:32 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-06-23 18:08:38 +0900 |
| commit | b30eba6a13fef8994a7556654b5d4e3e54622f65 (patch) | |
| tree | fb1ad463a199dc2f445273ec2832d6b8320d40fd | |
| parent | d0717efda64efba9b7b7d6602fddf797a05af196 (diff) | |
| download | mruby-b30eba6a13fef8994a7556654b5d4e3e54622f65.tar.gz mruby-b30eba6a13fef8994a7556654b5d4e3e54622f65.zip | |
Make `LocalJumpError` a subclass of `ScriptError`.
It's incompatible with CRuby, but it is required for mruby because
it cannot detect `break` outside of loops in the parsing time, but
in the code generation time where it cannot raise `SyntaxError`.
| -rw-r--r-- | mrblib/10error.rb | 4 | ||||
| -rw-r--r-- | test/t/superclass.rb | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/mrblib/10error.rb b/mrblib/10error.rb index 2674af7a2..22a8d1ad7 100644 --- a/mrblib/10error.rb +++ b/mrblib/10error.rb @@ -2,8 +2,8 @@ class ArgumentError < StandardError end -# ISO 15.2.25 -class LocalJumpError < StandardError +# ISO 15.2.25 says "LocalJumpError < StandardError" +class LocalJumpError < ScriptError end # ISO 15.2.26 diff --git a/test/t/superclass.rb b/test/t/superclass.rb index 9fd8830b3..10b6438d3 100644 --- a/test/t/superclass.rb +++ b/test/t/superclass.rb @@ -23,7 +23,8 @@ [:Exception, :Object, '15.2.22.2'], [:StandardError, :Exception, '15.2.23.2'], [:ArgumentError, :StandardError, '15.2.24.2'], - [:LocalJumpError, :StandardError, '15.2.25.2'], + # [:LocalJumpError, :StandardError, '15.2.25.2'], + [:LocalJumpError, :ScriptError, '15.2.25.2'], # mruby specific [:RangeError, :StandardError, '12.2.26.2'], [:RegexpError, :StandardError, '12.2.27.2'], [:RuntimeError, :StandardError, '12.2.28.2'], |
