mirror of
https://github.com/ruby/ruby.git
synced 2026-10-28 16:36:20 +08:00
Temporarily disable incompatible override of Array#find in YJIT & ZJIT
This commit is contained in:
1 parent
0d68ef6b77
commit
09a9bdeb32
1 file changed
+17
-16
Notes:
git
2026-07-07 21:01:41 +00:00
@@ -285,23 +285,24 @@ class Array
|
||||
end
|
||||
end
|
||||
|
||||
if Primitive.rb_builtin_basic_definition_p(:find)
|
||||
undef :find
|
||||
# TODO: Temporarily disabled because it is not compatible and fails multiple spec/ruby/core/array specs
|
||||
# if Primitive.rb_builtin_basic_definition_p(:find)
|
||||
# undef :find
|
||||
|
||||
def find(if_none_proc = nil) # :nodoc:
|
||||
Primitive.attr! :inline_block, :c_trace, :without_interrupts
|
||||
# def find(if_none_proc = nil) # :nodoc:
|
||||
# Primitive.attr! :inline_block, :c_trace, :without_interrupts
|
||||
|
||||
unless defined?(yield)
|
||||
return Primitive.cexpr! 'SIZED_ENUMERATOR(self, 0, 0, ary_enum_length)'
|
||||
end
|
||||
i = 0
|
||||
until Primitive.rb_jit_ary_at_end(i)
|
||||
value = Primitive.rb_jit_ary_at(i)
|
||||
return value if yield(value)
|
||||
i = Primitive.rb_jit_fixnum_inc(i)
|
||||
end
|
||||
if_none_proc&.call
|
||||
end
|
||||
end
|
||||
# unless defined?(yield)
|
||||
# return Primitive.cexpr! 'SIZED_ENUMERATOR(self, 0, 0, ary_enum_length)'
|
||||
# end
|
||||
# i = 0
|
||||
# until Primitive.rb_jit_ary_at_end(i)
|
||||
# value = Primitive.rb_jit_ary_at(i)
|
||||
# return value if yield(value)
|
||||
# i = Primitive.rb_jit_fixnum_inc(i)
|
||||
# end
|
||||
# if_none_proc&.call
|
||||
# end
|
||||
# end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user