diff options
| author | Jeremy Evans <code@jeremyevans.net> | 2024-03-14 15:10:07 -0700 |
|---|---|---|
| committer | Jeremy Evans <code@jeremyevans.net> | 2024-03-16 09:27:32 -0700 |
| commit | 815c7e197cfa193fc83844f2b988e26d0a56464d (patch) | |
| tree | 5d38c06946135b45d77b6d0474fd5e00248cb701 /test/ruby | |
| parent | bda5b099375d91274a5314aad2608f8e5b37e891 (diff) | |
Avoid caller-side hash allocation for f(*a, kw: 1) and f(*a, kw: 1, &block)
Previously, this used:
```
splatarray false
duphash
getlocal/getblockparamproxy # in the block passing case
send ARGS_SPLAT|KW_SPLAT|KW_SPLAT_MUT
```
This changes the duphash to putobject, with putobject using
a frozen version of the hash, and removing the keyword mutability:
```
splatarray false
putobject
getlocal/getblockparamproxy # in the block passing case
send ARGS_SPLAT|KW_SPLAT
```
Diffstat (limited to 'test/ruby')
0 files changed, 0 insertions, 0 deletions
