summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--load.c1
-rw-r--r--test/ruby/test_settracefunc.rb8
2 files changed, 7 insertions, 2 deletions
diff --git a/load.c b/load.c
index cc5533e8b2..ba84ec0d7b 100644
--- a/load.c
+++ b/load.c
@@ -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