diff options
-rw-r--r-- | load.c | 1 | ||||
-rw-r--r-- | test/ruby/test_settracefunc.rb | 8 |
2 files changed, 7 insertions, 2 deletions
@@ -1053,7 +1053,6 @@ rb_require_safe(VALUE fname, int safe) int result = rb_require_internal(fname, safe); if (result > TAG_RETURN) { - if (result == TAG_RAISE) rb_exc_raise(rb_errinfo()); EC_JUMP_TAG(GET_EC(), result); } if (result < 0) { diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb index 7d7b672fd8..11384273df 100644 --- a/test/ruby/test_settracefunc.rb +++ b/test/ruby/test_settracefunc.rb @@ -1676,10 +1676,16 @@ class TestSetTraceFunc < Test::Unit::TestCase tmpdir = Dir.mktmpdir path = "#{tmpdir}/hola.rb" File.open(path, "w") { |f| f.write("raise") } - TracePoint.new(:raise){|tp| next if !target_thread?; events << [tp.event]}.enable{ + tp = TracePoint.new(:raise) {|tp| events << [tp.event] if target_thread?} + tp.enable{ load path rescue nil } assert_equal [[:raise]], events + events.clear + tp.enable{ + require path rescue nil + } + assert_equal [[:raise]], events ensure FileUtils.rmtree(tmpdir) end |