pub(crate) fn enumerator_fiber(
        &mut self,
        self_val: Value,
        args: &Args,
        method_name: IdentId,
    ) -> VMResult {
        let method = self_val.get_method_or_nomethod(&mut self.globals, method_name)?;
        let val = self.eval_method(method, self_val, &args, &Args2::from(args))?;
        self.globals.val = val;
        Err(RubyError::stop_iteration("Iteration reached an end."))
    }
This func is called in the fiber thread of a enumerator.
`vm`: VM of created fiber.
ruruby/src/vm/executor/fiber.rs