insns.def (getblockparamproxy): introduce new instruction to return
the rb_block_param_proxy object if possible. This object responds
to call method and invoke given block (completely similar to yield).
method.h (OPTIMIZED_METHOD_TYPE_BLOCK_CALL): add new optimized call type
which is for rb_block_param_proxy.cal.
Speedup
block.call
[Feature #14330]insns.def (getblockparamproxy): introduce new instruction to return
the
rb_block_param_proxy
object if possible. This object respondsto
call
method and invoke given block (completely similar toyield
).method.h (OPTIMIZED_METHOD_TYPE_BLOCK_CALL): add new optimized call type
which is for
rb_block_param_proxy.cal
.vm_insnhelper.c (vm_call_method_each_type): ditto.
vm_insnhelper.c (vm_call_opt_block_call): ditto.
vm_core.h (BOP_CALL, PROC_REDEFINED_OP_FLAG): add check for
Proc#call
redefinition.
compile.c (iseq_compile_each0): compile to use new insn
getblockparamproxy
for method call.git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e