# File ruby/jlambda.rb, line 43
  def jlambda(arg_src, body_src)
        arg_src = arg_src.split("\n").join
        body_src = normalize_block_exp body_src
        body_src += "return null;" unless body_src =~ /return/

        classname = get_unique_classname
        cls = get_pool.makeClass(classname, get_pool.get("java.lang.Object"))
        cls.setModifiers(cls.getModifiers() & ~(:javassist_Modifier.jclass.ABSTRACT))

        src = "public Object call(#{arg_src}) throws Exception {#{body_src}}"
        m = :javassist_CtNewMethod.jclass.make(src,cls)
        cls.addMethod(m)
        cls.toClass

        jobj = jnew(classname)
        return lambda {|*args| jobj.call(*args) }
  end