diff options
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -3608,6 +3608,13 @@ rb_yield_0(val, self, klass, acheck) POP_TAG(); if (state) goto pop_state; } + else { + /* argument adjust for proc_call etc. */ + if (acheck && val != Qundef && + TYPE(val) == T_ARRAY && RARRAY(val)->len == 1) { + val = RARRAY(val)->ptr[0]; + } + } PUSH_ITER(block->iter); PUSH_TAG(PROT_NONE); |