mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
This fixes instance_exec and similar methods. It also fixes
Enumerator::Yielder#yield, rb_yield_block, and a couple of cases
with Proc#{<<,>>}.
This support requires the addition of rb_yield_values_kw, similar to
rb_yield_values2, for passing the keyword flag.
Unlike earlier attempts at this, this does not modify the rb_block_call_func
type or add a separate function type. The functions of type
rb_block_call_func are called by Ruby with a separate VM frame, and we can
get the keyword flag information from the VM frame flags, so it doesn't need
to be passed as a function argument.
These changes require the following VM functions accept a keyword flag:
* vm_yield_with_cref
* vm_yield
* vm_yield_with_block
|
||
|---|---|---|
| .. | ||
| backward | ||
| assert.h | ||
| backward.h | ||
| debug.h | ||
| defines.h | ||
| encoding.h | ||
| intern.h | ||
| io.h | ||
| missing.h | ||
| onigmo.h | ||
| oniguruma.h | ||
| re.h | ||
| regex.h | ||
| ruby.h | ||
| st.h | ||
| subst.h | ||
| thread.h | ||
| thread_native.h | ||
| util.h | ||
| version.h | ||
| vm.h | ||
| win32.h | ||