if (blk instanceof RubyNil) blk = Block.NULL_BLOCK;
Block b = (Block)blk;
// Ruby 1.8 mode: yields are always to normal blocks
if (!context.runtime.is1_9()) b.type = Block.Type.NORMAL;
if (yieldArg == UndefinedValue.UNDEFINED) {
return b.yieldSpecific(context);
} else {
IRubyObject yieldVal = (IRubyObject)yieldArg.retrieve(context, self, currDynScope, temp);
return (unwrapArray && (yieldVal instanceof RubyArray)) ? b.yieldArray(context, yieldVal, null, null) : b.yield(context, yieldVal);
}
}