summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/debug_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/optional/capi/debug_spec.rb')
-rw-r--r--spec/ruby/optional/capi/debug_spec.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/spec/ruby/optional/capi/debug_spec.rb b/spec/ruby/optional/capi/debug_spec.rb
index 148b8c38fb..14ba25609c 100644
--- a/spec/ruby/optional/capi/debug_spec.rb
+++ b/spec/ruby/optional/capi/debug_spec.rb
@@ -37,9 +37,12 @@ describe "C-API Debug function" do
it "matches the locations in rb_debug_inspector_backtrace_locations" do
frames = @o.rb_debug_inspector_open(42)
- frames.each do |_s, _klass, binding, _iseq, backtrace_location|
+ frames.each do |_s, klass, binding, iseq, backtrace_location|
if binding
- binding.source_location.should == [backtrace_location.path, backtrace_location.lineno]
+ # YJIT modifies Array#each backtraces but leaves its source_location as is
+ unless defined?(RubyVM::YJIT) && klass == Array && iseq.label == "each"
+ binding.source_location.should == [backtrace_location.path, backtrace_location.lineno]
+ end
method_name = binding.eval('__method__')
if method_name
method_name.should == backtrace_location.base_label.to_sym