class org.jruby.ir.IRBuilder$5 implements org.jruby.ir.IRBuilder$CodeBlock
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jruby.ir.IRBuilder$5
super_class: java.lang.Object
{
final org.jruby.ir.IRBuilder this$0;
descriptor: Lorg/jruby/ir/IRBuilder;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final org.jruby.ast.CallNode val$callNode;
descriptor: Lorg/jruby/ast/CallNode;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(org.jruby.ir.IRBuilder, org.jruby.ast.CallNode);
descriptor: (Lorg/jruby/ir/IRBuilder;Lorg/jruby/ast/CallNode;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // org.jruby.ir.IRBuilder$5 this
0: .line 1877
aload 0 /* this */
aload 1
putfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
aload 0 /* this */
aload 2
putfield org.jruby.ir.IRBuilder$5.val$callNode:Lorg/jruby/ast/CallNode;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.jruby.ir.IRBuilder$5 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRBuilder$5;
MethodParameters:
Name Flags
this$0 final
val$callNode final
public org.jruby.ir.operands.Operand run();
descriptor: ()Lorg/jruby/ir/operands/Operand;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=4, args_size=1
start local 0 // org.jruby.ir.IRBuilder$5 this
0: .line 1879
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.getNewLabel:()Lorg/jruby/ir/operands/Label;
astore 1 /* undefLabel */
start local 1 // org.jruby.ir.operands.Label undefLabel
1: .line 1880
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.val$callNode:Lorg/jruby/ast/CallNode;
invokevirtual org.jruby.ast.CallNode.getReceiverNode:()Lorg/jruby/ast/Node;
invokevirtual org.jruby.ir.IRBuilder.buildGetDefinition:(Lorg/jruby/ast/Node;)Lorg/jruby/ir/operands/Operand;
astore 2 /* receiverDefn */
start local 2 // org.jruby.ir.operands.Operand receiverDefn
2: .line 1881
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
aload 2 /* receiverDefn */
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getNil:()Lorg/jruby/ir/operands/Nil;
aload 1 /* undefLabel */
invokestatic org.jruby.ir.IRBuilder.createBranch:(Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Label;)Lorg/jruby/ir/instructions/Instr;
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
3: .line 1882
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.createTemporaryVariable:()Lorg/jruby/ir/operands/TemporaryVariable;
astore 3 /* tmpVar */
start local 3 // org.jruby.ir.operands.Variable tmpVar
4: .line 1883
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
5: .line 1884
new org.jruby.ir.instructions.RuntimeHelperCall
dup
6: .line 1885
aload 3 /* tmpVar */
7: .line 1886
getstatic org.jruby.ir.instructions.RuntimeHelperCall$Methods.IS_DEFINED_CALL:Lorg/jruby/ir/instructions/RuntimeHelperCall$Methods;
8: .line 1887
iconst_3
anewarray org.jruby.ir.operands.Operand
dup
iconst_0
9: .line 1888
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.val$callNode:Lorg/jruby/ast/CallNode;
invokevirtual org.jruby.ast.CallNode.getReceiverNode:()Lorg/jruby/ast/Node;
invokevirtual org.jruby.ir.IRBuilder.build:(Lorg/jruby/ast/Node;)Lorg/jruby/ir/operands/Operand;
aastore
dup
iconst_1
10: .line 1889
new org.jruby.ir.operands.Symbol
dup
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.val$callNode:Lorg/jruby/ast/CallNode;
invokevirtual org.jruby.ast.CallNode.getName:()Lorg/jruby/RubySymbol;
invokespecial org.jruby.ir.operands.Symbol.<init>:(Lorg/jruby/RubySymbol;)V
aastore
dup
iconst_2
11: .line 1890
new org.jruby.ir.operands.FrozenString
dup
getstatic org.jruby.util.DefinedMessage.METHOD:Lorg/jruby/util/DefinedMessage;
invokevirtual org.jruby.util.DefinedMessage.getText:()Ljava/lang/String;
invokespecial org.jruby.ir.operands.FrozenString.<init>:(Ljava/lang/String;)V
aastore
12: .line 1884
invokespecial org.jruby.ir.instructions.RuntimeHelperCall.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/instructions/RuntimeHelperCall$Methods;[Lorg/jruby/ir/operands/Operand;)V
13: .line 1883
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
14: .line 1894
aload 0 /* this */
getfield org.jruby.ir.IRBuilder$5.this$0:Lorg/jruby/ir/IRBuilder;
aload 1 /* undefLabel */
aload 3 /* tmpVar */
invokevirtual org.jruby.ir.IRBuilder.buildDefnCheckIfThenPaths:(Lorg/jruby/ir/operands/Label;Lorg/jruby/ir/operands/Operand;)Lorg/jruby/ir/operands/Variable;
areturn
end local 3 // org.jruby.ir.operands.Variable tmpVar
end local 2 // org.jruby.ir.operands.Operand receiverDefn
end local 1 // org.jruby.ir.operands.Label undefLabel
end local 0 // org.jruby.ir.IRBuilder$5 this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/jruby/ir/IRBuilder$5;
1 15 1 undefLabel Lorg/jruby/ir/operands/Label;
2 15 2 receiverDefn Lorg/jruby/ir/operands/Operand;
4 15 3 tmpVar Lorg/jruby/ir/operands/Variable;
}
SourceFile: "IRBuilder.java"
EnclosingMethod: org.jruby.ir.IRBuilder.buildGetDefinition:(Lorg/jruby/ast/Node;)Lorg/jruby/ir/operands/Operand;
NestHost: org.jruby.ir.IRBuilder
InnerClasses:
org.jruby.ir.IRBuilder$5
abstract CodeBlock = org.jruby.ir.IRBuilder$CodeBlock of org.jruby.ir.IRBuilder
public final Methods = org.jruby.ir.instructions.RuntimeHelperCall$Methods of org.jruby.ir.instructions.RuntimeHelperCall