String ciClassname = "L" + classname + ";";
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(CompiledBlockCallback.class), null);
cw.visitSource(namePath, null);
cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ciClassname, null, null);
SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw, ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null);
mv.start();
mv.aload(0);
mv.invokespecial(p(CompiledBlockCallback.class), "<init>", sig(void.class));
mv.aloadMany(0, 1);
mv.checkcast(classname);
mv.putfield(namePath, "$scriptObject", ciClassname);
mv.voidreturn();
mv.end();
return cw;
}