fn get_class_defined(&self, new_module: impl Into<Module>) -> Vec<Module> {
        let mut cfp = Some(self.cfp);
        let mut v = vec![new_module.into()];
        while let Some(f) = cfp {
            if f.is_ruby_func() {
                let iseq = f.ep().iseq();
                if iseq.is_classdef() {
                    v.push(Module::new(f.self_value()));
                }
            }
            cfp = f.prev();
        }
        v.reverse();
        v
    }
Get class list in the current context.

At first, this method searches the class list of outer context,
and adds a class given as an argument `new_class` on the top of the list.
return None in top-level.
ruruby/src/vm/executor.rs