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
Avoid caller-side hash allocation for f(*a, kw: 1) and f(*a, kw: 1, &block)
Previously, this used:
This changes the duphash to putobject, with putobject using
a frozen version of the hash, and removing the keyword mutability: