pub(crate) fn eval_block_with_methodid(
        &mut self,
        method: FnId,
        self_val: impl Into<Value>,
        outer: EnvFrame,
        args: &Args,
    ) -> VMResult {
        let self_val = self_val.into();
        self.stack_push(self_val);
        let args = self.stack_push_args(args);
        self.invoke_block(method, outer, &args)?.handle(self)
    }
Evaluate the block with given `self_val`, `args` and no outer context.
ruruby/src/vm/executor/method.rs