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_proxyobject if possible. This object respondsto
callmethod 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#callredefinition.
compile.c (iseq_compile_each0): compile to use new insn
getblockparamproxyfor method call.git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e