public class org.jruby.ir.persistence.IRWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ir.persistence.IRWriter
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/persistence/IRWriter;
public static void persist(org.jruby.ir.persistence.IRWriterEncoder, org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.startEncoding:(Lorg/jruby/ir/IRScope;)V
1: aload 0
aload 1
invokestatic org.jruby.ir.persistence.IRWriter.persistScopeInstructions:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
2: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.startEncodingScopeHeaders:(Lorg/jruby/ir/IRScope;)V
3: aload 0
aload 1
invokestatic org.jruby.ir.persistence.IRWriter.persistScopeHeaders:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
4: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.endEncodingScopeHeaders:(Lorg/jruby/ir/IRScope;)V
5: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.endEncoding:(Lorg/jruby/ir/IRScope;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 file Lorg/jruby/ir/persistence/IRWriterEncoder;
0 7 1 script Lorg/jruby/ir/IRScope;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
script
private static void persistScopeInstructions(org.jruby.ir.persistence.IRWriterEncoder, org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.jruby.ir.persistence.IRWriter.persistScopeInstrs:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
1: aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalScopes:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.jruby.ir.persistence.IRWriterEncoder org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRScope
astore 2
start local 2 3: aload 0
aload 2
invokestatic org.jruby.ir.persistence.IRWriter.persistScopeInstructions:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 file Lorg/jruby/ir/persistence/IRWriterEncoder;
0 6 1 parent Lorg/jruby/ir/IRScope;
3 4 2 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
file
parent
private static void persistScopeInstrs(org.jruby.ir.persistence.IRWriterEncoder, org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.startEncodingScopeInstrs:(Lorg/jruby/ir/IRScope;)V
1: aload 1
instanceof org.jruby.ir.IRMethod
ifeq 3
aload 1
invokevirtual org.jruby.ir.IRScope.hasBeenBuilt:()Z
ifne 3
2: aload 1
checkcast org.jruby.ir.IRMethod
invokevirtual org.jruby.ir.IRMethod.lazilyAcquireInterpreterContext:()Lorg/jruby/ir/interpreter/InterpreterContext;
pop
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getInterpreterContext:()Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.getInstructions:()[Lorg/jruby/ir/instructions/Instr;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.jruby.ir.persistence.IRWriterEncoder org.jruby.ir.IRScope top int int org.jruby.ir.instructions.Instr[]
StackMap stack:
4: aload 5
iload 3
aaload
astore 2
start local 2 5: aload 0
aload 2
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/ir/instructions/Instr;)V
end local 2 6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 4
8: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.endEncodingScopeInstrs:(Lorg/jruby/ir/IRScope;)V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 file Lorg/jruby/ir/persistence/IRWriterEncoder;
0 10 1 scope Lorg/jruby/ir/IRScope;
5 6 2 instr Lorg/jruby/ir/instructions/Instr;
MethodParameters:
Name Flags
file
scope
private static void (org.jruby.ir.persistence.IRWriterEncoder, org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.jruby.ir.persistence.IRWriter.persistScopeHeader:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
1: aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalScopes:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.jruby.ir.persistence.IRWriterEncoder org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRScope
astore 2
start local 2 3: aload 0
aload 2
invokestatic org.jruby.ir.persistence.IRWriter.persistScopeHeaders:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 file Lorg/jruby/ir/persistence/IRWriterEncoder;
0 6 1 parent Lorg/jruby/ir/IRScope;
3 4 2 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
file
parent
private static void (org.jruby.ir.persistence.IRWriterEncoder, org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyInstanceConfig.IR_WRITING_DEBUG:Z
ifeq 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Writing Scope Header"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.startEncodingScopeHeader:(Lorg/jruby/ir/IRScope;)V
2: aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.persistScopeHeader:(Lorg/jruby/ir/persistence/IRWriterEncoder;)V
3: getstatic org.jruby.RubyInstanceConfig.IR_WRITING_DEBUG:Z
ifeq 4
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "NAME = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.jruby.ir.IRScope.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 1
instanceof org.jruby.ir.IRScriptBody
ifeq 7
5: aload 0
aload 1
invokevirtual org.jruby.ir.IRScope.getId:()Ljava/lang/String;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Ljava/lang/String;)V
6: goto 9
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.ir.IRScope.getName:()Lorg/jruby/RubySymbol;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encodeRaw:(Lorg/jruby/RubySymbol;)V
8: aload 0
aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/ir/IRScope;)V
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.ir.IRScope.getStaticScope:()Lorg/jruby/parser/StaticScope;
invokestatic org.jruby.ir.persistence.IRWriter.persistStaticScope:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/parser/StaticScope;)V
10: aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.persistScopeFlags:(Lorg/jruby/ir/persistence/IRWriterEncoder;)V
11: aload 0
aload 1
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.endEncodingScopeHeader:(Lorg/jruby/ir/IRScope;)V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 file Lorg/jruby/ir/persistence/IRWriterEncoder;
0 13 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
file
scope
private static void persistStaticScope(org.jruby.ir.persistence.IRWriterEncoder, org.jruby.parser.StaticScope);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/parser/StaticScope;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.parser.StaticScope.getType:()Lorg/jruby/parser/StaticScope$Type;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/parser/StaticScope$Type;)V
1: aload 0
aload 1
invokevirtual org.jruby.parser.StaticScope.getVariables:()[Ljava/lang/String;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:([Ljava/lang/String;)V
2: aload 0
aload 1
invokevirtual org.jruby.parser.StaticScope.getFirstKeywordIndex:()I
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
3: aload 0
aload 1
invokevirtual org.jruby.parser.StaticScope.getSignature:()Lorg/jruby/runtime/Signature;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/runtime/Signature;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 file Lorg/jruby/ir/persistence/IRWriterEncoder;
0 5 1 staticScope Lorg/jruby/parser/StaticScope;
MethodParameters:
Name Flags
file
staticScope
}
SourceFile: "IRWriter.java"
InnerClasses:
public final Type = org.jruby.parser.StaticScope$Type of org.jruby.parser.StaticScope