YJIT: Fallback send instructions to vm_sendish (#8106)

This commit is contained in:
Takashi Kokubun 2023-07-24 13:51:46 -07:00 committed by GitHub
parent c4e893ceb5
commit cef60e93e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: git 2025-04-09 13:49:37 +00:00
Merged-By: k0kubun <takashikkbn@gmail.com>
7 changed files with 178 additions and 7 deletions

View file

@ -548,7 +548,7 @@ class TestYJIT < Test::Unit::TestCase
def test_getblockparamproxy
# Currently two side exits as OPTIMIZED_METHOD_TYPE_CALL is unimplemented
assert_compiles(<<~'RUBY', insns: [:getblockparamproxy], exits: { opt_send_without_block: 2 })
assert_compiles(<<~'RUBY', insns: [:getblockparamproxy])
def foo &blk
p blk.call
p blk.call
@ -607,7 +607,7 @@ class TestYJIT < Test::Unit::TestCase
def test_send_kwargs
# For now, this side-exits when calls include keyword args
assert_compiles(<<~'RUBY', result: "2#a:1,b:2/A", exits: {opt_send_without_block: 1})
assert_compiles(<<~'RUBY', result: "2#a:1,b:2/A")
def internal_method(**kw)
"#{kw.size}##{kw.keys.map { |k| "#{k}:#{kw[k]}" }.join(",")}"
end
@ -647,7 +647,7 @@ class TestYJIT < Test::Unit::TestCase
def test_send_kwargs_splat
# For now, this side-exits when calling with a splat
assert_compiles(<<~'RUBY', result: "2#a:1,b:2/B", exits: {opt_send_without_block: 1})
assert_compiles(<<~'RUBY', result: "2#a:1,b:2/B")
def internal_method(**kw)
"#{kw.size}##{kw.keys.map { |k| "#{k}:#{kw[k]}" }.join(",")}"
end