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.encode:(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
invokestatic org.jruby.ir.persistence.IRWriter.persistLocalVariables:(Lorg/jruby/ir/IRScope;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 persistLocalVariables(org.jruby.ir.IRScope, org.jruby.ir.persistence.IRWriterEncoder);
descriptor: (Lorg/jruby/ir/IRScope;Lorg/jruby/ir/persistence/IRWriterEncoder;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.IRScope.getLocalVariables:()Ljava/util/Map;
astore 2
start local 2 1: getstatic org.jruby.RubyInstanceConfig.IR_WRITING_DEBUG:Z
ifeq 2
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "PERSISTING LVARS ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface java.util.Map.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
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
2: StackMap locals: java.util.Map
StackMap stack:
aload 1
aload 2
invokeinterface java.util.Map.size:()I
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
3: aload 2
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: org.jruby.ir.IRScope org.jruby.ir.persistence.IRWriterEncoder java.util.Map top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.RubySymbol
astore 3
start local 3 5: aload 1
aload 3
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/RubySymbol;)V
6: aload 2
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
invokevirtual org.jruby.ir.operands.LocalVariable.getOffset:()I
istore 5
start local 5 7: getstatic org.jruby.RubyInstanceConfig.IR_WRITING_DEBUG:Z
ifeq 8
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 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "(0:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
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
8: StackMap locals: org.jruby.ir.IRScope org.jruby.ir.persistence.IRWriterEncoder java.util.Map org.jruby.RubySymbol java.util.Iterator int
StackMap stack:
aload 1
iload 5
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
end local 5 end local 3 9: StackMap locals: org.jruby.ir.IRScope org.jruby.ir.persistence.IRWriterEncoder java.util.Map top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 scope Lorg/jruby/ir/IRScope;
0 11 1 file Lorg/jruby/ir/persistence/IRWriterEncoder;
1 11 2 localVariables Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/ir/operands/LocalVariable;>;
5 9 3 name Lorg/jruby/RubySymbol;
7 9 5 offset I
MethodParameters:
Name Flags
scope
file
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