public class org.jruby.ir.Compiler extends org.jruby.ir.IRTranslator<org.jruby.ast.executable.ScriptAndCode, org.jruby.util.ClassDefiningClassLoader>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ir.Compiler
  super_class: org.jruby.ir.IRTranslator
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.Compiler this
         0: .line 33
            aload 0 /* this */
            invokespecial org.jruby.ir.IRTranslator.<init>:()V
            return
        end local 0 // org.jruby.ir.Compiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/Compiler;

  public static org.jruby.ir.Compiler getInstance();
    descriptor: ()Lorg/jruby/ir/Compiler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 41
            getstatic org.jruby.ir.Compiler$CompilerHolder.instance:Lorg/jruby/ir/Compiler;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected org.jruby.ast.executable.ScriptAndCode execute(org.jruby.Ruby, org.jruby.ir.IRScriptBody, org.jruby.util.ClassDefiningClassLoader);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ir/IRScriptBody;Lorg/jruby/util/ClassDefiningClassLoader;)Lorg/jruby/ast/executable/ScriptAndCode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.jruby.ir.Compiler this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.ir.IRScriptBody scope
        start local 3 // org.jruby.util.ClassDefiningClassLoader classLoader
         0: .line 50
            new org.jruby.ir.targets.JVMVisitor
            dup
            aload 1 /* runtime */
            invokespecial org.jruby.ir.targets.JVMVisitor.<init>:(Lorg/jruby/Ruby;)V
            astore 6 /* visitor */
        start local 6 // org.jruby.ir.targets.JVMVisitor visitor
         1: .line 51
            new org.jruby.ir.targets.JVMVisitorMethodContext
            dup
            invokespecial org.jruby.ir.targets.JVMVisitorMethodContext.<init>:()V
            astore 7 /* context */
        start local 7 // org.jruby.ir.targets.JVMVisitorMethodContext context
         2: .line 52
            aload 6 /* visitor */
            aload 2 /* scope */
            aload 7 /* context */
            invokevirtual org.jruby.ir.targets.JVMVisitor.compileToBytecode:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/targets/JVMVisitorMethodContext;)[B
            astore 4 /* bytecode */
        start local 4 // byte[] bytecode
         3: .line 53
            aload 6 /* visitor */
            aload 2 /* scope */
            aload 4 /* bytecode */
            aload 3 /* classLoader */
            invokevirtual org.jruby.ir.targets.JVMVisitor.defineFromBytecode:(Lorg/jruby/ir/IRScope;[BLorg/jruby/util/ClassDefiningClassLoader;)Ljava/lang/Class;
            astore 8 /* compiled */
        start local 8 // java.lang.Class compiled
         4: .line 55
            aload 8 /* compiled */
            ldc "RUBY$script"
            bipush 7
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/runtime/ThreadContext;
            aastore
            dup
            iconst_1
         5: .line 56
            ldc Lorg/jruby/parser/StaticScope;
            aastore
            dup
            iconst_2
            ldc Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            dup
            iconst_3
            ldc [Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            dup
            iconst_4
            ldc Lorg/jruby/runtime/Block;
            aastore
            dup
            iconst_5
            ldc Lorg/jruby/RubyModule;
            aastore
            dup
            bipush 6
            ldc Ljava/lang/String;
            aastore
         6: .line 55
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 9 /* compiledMethod */
        start local 9 // java.lang.reflect.Method compiledMethod
         7: .line 57
            invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            aload 9 /* compiledMethod */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflect:(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
            astore 5 /* _compiledHandle */
        end local 9 // java.lang.reflect.Method compiledMethod
        end local 8 // java.lang.Class compiled
        end local 7 // org.jruby.ir.targets.JVMVisitorMethodContext context
        end local 6 // org.jruby.ir.targets.JVMVisitor visitor
        start local 5 // java.lang.invoke.MethodHandle _compiledHandle
         8: .line 58
            goto 13
        end local 5 // java.lang.invoke.MethodHandle _compiledHandle
        end local 4 // byte[] bytecode
      StackMap locals:
      StackMap stack: org.jruby.compiler.NotCompilableException
         9: astore 6 /* nce */
        start local 6 // org.jruby.compiler.NotCompilableException nce
        10: .line 59
            aload 6 /* nce */
            athrow
        end local 6 // org.jruby.compiler.NotCompilableException nce
        11: .line 60
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        12: .line 61
            new org.jruby.compiler.NotCompilableException
            dup
            new java.lang.StringBuilder
            dup
            ldc "failed to compile script "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* scope */
            invokevirtual org.jruby.ir.IRScriptBody.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* t */
            invokespecial org.jruby.compiler.NotCompilableException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable t
        start local 4 // byte[] bytecode
        start local 5 // java.lang.invoke.MethodHandle _compiledHandle
        13: .line 64
      StackMap locals: byte[] java.lang.invoke.MethodHandle
      StackMap stack:
            aload 5 /* _compiledHandle */
            astore 6 /* compiledHandle */
        start local 6 // java.lang.invoke.MethodHandle compiledHandle
        14: .line 65
            aload 2 /* scope */
            invokevirtual org.jruby.ir.IRScriptBody.getStaticScope:()Lorg/jruby/parser/StaticScope;
            astore 7 /* staticScope */
        start local 7 // org.jruby.parser.StaticScope staticScope
        15: .line 67
            new org.jruby.ir.Compiler$1
            dup
            aload 0 /* this */
            aload 6 /* compiledHandle */
            aload 7 /* staticScope */
            invokespecial org.jruby.ir.Compiler$1.<init>:(Lorg/jruby/ir/Compiler;Ljava/lang/invoke/MethodHandle;Lorg/jruby/parser/StaticScope;)V
            astore 8 /* script */
        start local 8 // org.jruby.ast.executable.Script script
        16: .line 100
            new org.jruby.ast.executable.ScriptAndCode
            dup
            aload 4 /* bytecode */
            aload 8 /* script */
            invokespecial org.jruby.ast.executable.ScriptAndCode.<init>:([BLorg/jruby/ast/executable/Script;)V
            areturn
        end local 8 // org.jruby.ast.executable.Script script
        end local 7 // org.jruby.parser.StaticScope staticScope
        end local 6 // java.lang.invoke.MethodHandle compiledHandle
        end local 5 // java.lang.invoke.MethodHandle _compiledHandle
        end local 4 // byte[] bytecode
        end local 3 // org.jruby.util.ClassDefiningClassLoader classLoader
        end local 2 // org.jruby.ir.IRScriptBody scope
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ir.Compiler this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/jruby/ir/Compiler;
            0   17     1          runtime  Lorg/jruby/Ruby;
            0   17     2            scope  Lorg/jruby/ir/IRScriptBody;
            0   17     3      classLoader  Lorg/jruby/util/ClassDefiningClassLoader;
            3    9     4         bytecode  [B
           13   17     4         bytecode  [B
            8    9     5  _compiledHandle  Ljava/lang/invoke/MethodHandle;
           13   17     5  _compiledHandle  Ljava/lang/invoke/MethodHandle;
            1    8     6          visitor  Lorg/jruby/ir/targets/JVMVisitor;
            2    8     7          context  Lorg/jruby/ir/targets/JVMVisitorMethodContext;
            4    8     8         compiled  Ljava/lang/Class;
            7    8     9   compiledMethod  Ljava/lang/reflect/Method;
           10   11     6              nce  Lorg/jruby/compiler/NotCompilableException;
           12   13     6                t  Ljava/lang/Throwable;
           14   17     6   compiledHandle  Ljava/lang/invoke/MethodHandle;
           15   17     7      staticScope  Lorg/jruby/parser/StaticScope;
           16   17     8           script  Lorg/jruby/ast/executable/Script;
      Exception table:
        from    to  target  type
           0     8       9  Class org.jruby.compiler.NotCompilableException
           0     8      11  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      runtime      final
      scope        final
      classLoader  

  protected java.lang.Object execute(org.jruby.Ruby, org.jruby.ir.IRScriptBody, java.lang.Object);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ir/IRScriptBody;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            aload 3
            checkcast org.jruby.util.ClassDefiningClassLoader
            invokevirtual org.jruby.ir.Compiler.execute:(Lorg/jruby/Ruby;Lorg/jruby/ir/IRScriptBody;Lorg/jruby/util/ClassDefiningClassLoader;)Lorg/jruby/ast/executable/ScriptAndCode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/jruby/ir/IRTranslator<Lorg/jruby/ast/executable/ScriptAndCode;Lorg/jruby/util/ClassDefiningClassLoader;>;
SourceFile: "Compiler.java"
NestMembers:
  org.jruby.ir.Compiler$1  org.jruby.ir.Compiler$CompilerHolder
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.jruby.ir.Compiler$1
  private CompilerHolder = org.jruby.ir.Compiler$CompilerHolder of org.jruby.ir.Compiler