public abstract class org.jruby.ir.IRScope implements org.jruby.ParseResult
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.jruby.ir.IRScope
super_class: java.lang.Object
{
public static final org.jruby.util.log.Logger LOG;
descriptor: Lorg/jruby/util/log/Logger;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.util.Collection<org.jruby.ir.IRClosure> NO_CLOSURES;
descriptor: Ljava/util/Collection;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Collection<Lorg/jruby/ir/IRClosure;>;
private static final java.util.concurrent.atomic.AtomicInteger globalScopeCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int scopeId;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.jruby.util.ByteList name;
descriptor: Lorg/jruby/util/ByteList;
flags: (0x0002) ACC_PRIVATE
private final int lineNumber;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.jruby.ir.IRScope lexicalParent;
descriptor: Lorg/jruby/ir/IRScope;
flags: (0x0002) ACC_PRIVATE
private java.util.List<org.jruby.ir.IRClosure> nestedClosures;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/jruby/ir/IRClosure;>;
private int nextClosureIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.List<org.jruby.ir.IRScope> lexicalChildren;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/jruby/ir/IRScope;>;
private final org.jruby.parser.StaticScope staticScope;
descriptor: Lorg/jruby/parser/StaticScope;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected org.jruby.ir.interpreter.InterpreterContext interpreterContext;
descriptor: Lorg/jruby/ir/interpreter/InterpreterContext;
flags: (0x0004) ACC_PROTECTED
protected org.jruby.ir.interpreter.FullInterpreterContext fullInterpreterContext;
descriptor: Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0004) ACC_PROTECTED
protected org.jruby.ir.interpreter.FullInterpreterContext optimizedInterpreterContext;
descriptor: Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0004) ACC_PROTECTED
protected int temporaryVariableIndex;
descriptor: I
flags: (0x0004) ACC_PROTECTED
private int nextLabelIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
java.util.Map<org.jruby.RubySymbol, org.jruby.ir.operands.LocalVariable> localVars;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/ir/operands/LocalVariable;>;
final java.util.EnumSet<org.jruby.ir.IRFlags> flags;
descriptor: Ljava/util/EnumSet;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
private org.jruby.ir.IRManager manager;
descriptor: Lorg/jruby/ir/IRManager;
flags: (0x0002) ACC_PRIVATE
private boolean alreadyHasInline;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String inlineFailed;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public org.jruby.compiler.Compilable compilable;
descriptor: Lorg/jruby/compiler/Compilable;
flags: (0x0001) ACC_PUBLIC
private static final java.util.EnumSet<org.jruby.ir.IRFlags> DEFAULT_SCOPE_FLAGS;
descriptor: Ljava/util/EnumSet;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
private static final java.util.EnumSet<org.jruby.ir.IRFlags> NEEDS_DYNAMIC_SCOPE_FLAGS;
descriptor: Ljava/util/EnumSet;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$org$jruby$ir$IRFlags;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: ldc Lorg/jruby/ir/IRScope;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.jruby.ir.IRScope.$assertionsDisabled:Z
3: ldc Lorg/jruby/ir/IRScope;
invokestatic org.jruby.util.log.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/jruby/util/log/Logger;
putstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
4: getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
putstatic org.jruby.ir.IRScope.NO_CLOSURES:Ljava/util/Collection;
5: new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putstatic org.jruby.ir.IRScope.globalScopeCount:Ljava/util/concurrent/atomic/AtomicInteger;
6: getstatic org.jruby.ir.IRFlags.CAN_CAPTURE_CALLERS_BINDING:Lorg/jruby/ir/IRFlags;
bipush 6
anewarray org.jruby.ir.IRFlags
dup
iconst_0
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
aastore
dup
iconst_1
getstatic org.jruby.ir.IRFlags.USES_EVAL:Lorg/jruby/ir/IRFlags;
aastore
dup
iconst_2
getstatic org.jruby.ir.IRFlags.REQUIRES_BACKREF:Lorg/jruby/ir/IRFlags;
aastore
dup
iconst_3
7: getstatic org.jruby.ir.IRFlags.REQUIRES_LASTLINE:Lorg/jruby/ir/IRFlags;
aastore
dup
iconst_4
getstatic org.jruby.ir.IRFlags.REQUIRES_DYNSCOPE:Lorg/jruby/ir/IRFlags;
aastore
dup
iconst_5
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
aastore
8: invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;
9: putstatic org.jruby.ir.IRScope.DEFAULT_SCOPE_FLAGS:Ljava/util/EnumSet;
10: getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
getstatic org.jruby.ir.IRFlags.HAS_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
11: putstatic org.jruby.ir.IRScope.NEEDS_DYNAMIC_SCOPE_FLAGS:Ljava/util/EnumSet;
12: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.jruby.ir.IRScope, org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;Lorg/jruby/ir/IRScope;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.jruby.ir.IRScope.nextLabelIndex:I
2: aload 0
aload 2
putfield org.jruby.ir.IRScope.lexicalParent:Lorg/jruby/ir/IRScope;
3: aload 0
aload 1
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
putfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
4: aload 0
aload 1
getfield org.jruby.ir.IRScope.lineNumber:I
putfield org.jruby.ir.IRScope.lineNumber:I
5: aload 0
aload 1
getfield org.jruby.ir.IRScope.staticScope:Lorg/jruby/parser/StaticScope;
putfield org.jruby.ir.IRScope.staticScope:Lorg/jruby/parser/StaticScope;
6: aload 0
aload 1
getfield org.jruby.ir.IRScope.nextClosureIndex:I
putfield org.jruby.ir.IRScope.nextClosureIndex:I
7: aload 0
aload 1
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
8: aload 0
aconst_null
putfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
9: aload 0
aload 1
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.clone:()Ljava/util/EnumSet;
putfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
10: aload 0
new java.util.HashMap
dup
aload 1
getfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
putfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
11: aload 0
getstatic org.jruby.ir.IRScope.globalScopeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
putfield org.jruby.ir.IRScope.scopeId:I
12: aload 0
invokevirtual org.jruby.ir.IRScope.setupLexicalContainment:()V
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jruby/ir/IRScope;
0 14 1 s Lorg/jruby/ir/IRScope;
0 14 2 lexicalParent Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
s
lexicalParent
public void <init>(org.jruby.ir.IRManager, org.jruby.ir.IRScope, org.jruby.util.ByteList, int, org.jruby.parser.StaticScope);
descriptor: (Lorg/jruby/ir/IRManager;Lorg/jruby/ir/IRScope;Lorg/jruby/util/ByteList;ILorg/jruby/parser/StaticScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.jruby.ir.IRScope.nextLabelIndex:I
2: aload 0
aload 1
putfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
3: aload 0
aload 2
putfield org.jruby.ir.IRScope.lexicalParent:Lorg/jruby/ir/IRScope;
4: aload 0
aload 3
putfield org.jruby.ir.IRScope.name:Lorg/jruby/util/ByteList;
5: aload 0
iload 4
putfield org.jruby.ir.IRScope.lineNumber:I
6: aload 0
aload 5
putfield org.jruby.ir.IRScope.staticScope:Lorg/jruby/parser/StaticScope;
7: aload 0
iconst_0
putfield org.jruby.ir.IRScope.nextClosureIndex:I
8: aload 0
iconst_m1
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
9: aload 0
aconst_null
putfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
10: aload 0
getstatic org.jruby.ir.IRScope.DEFAULT_SCOPE_FLAGS:Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.clone:()Ljava/util/EnumSet;
putfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
11: aload 0
invokevirtual org.jruby.ir.IRScope.parentMaybeUsingRefinements:()Z
ifeq 12
aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.MAYBE_USING_REFINEMENTS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
12: StackMap locals: org.jruby.ir.IRScope org.jruby.ir.IRManager org.jruby.ir.IRScope org.jruby.util.ByteList int org.jruby.parser.StaticScope
StackMap stack:
aload 0
new java.util.HashMap
dup
iconst_1
invokespecial java.util.HashMap.<init>:(I)V
putfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
13: aload 0
getstatic org.jruby.ir.IRScope.globalScopeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
putfield org.jruby.ir.IRScope.scopeId:I
14: aload 0
invokevirtual org.jruby.ir.IRScope.setupLexicalContainment:()V
15: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/jruby/ir/IRScope;
0 16 1 manager Lorg/jruby/ir/IRManager;
0 16 2 lexicalParent Lorg/jruby/ir/IRScope;
0 16 3 name Lorg/jruby/util/ByteList;
0 16 4 lineNumber I
0 16 5 staticScope Lorg/jruby/parser/StaticScope;
MethodParameters:
Name Flags
manager
lexicalParent
name
lineNumber
staticScope
private void setupLexicalContainment();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.isDryRun:()Z
ifne 1
getstatic org.jruby.RubyInstanceConfig.IR_WRITING:Z
ifne 1
getstatic org.jruby.RubyInstanceConfig.RECORD_LEXICAL_HIERARCHY:Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 0
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
2: aload 0
getfield org.jruby.ir.IRScope.lexicalParent:Lorg/jruby/ir/IRScope;
ifnull 3
aload 0
getfield org.jruby.ir.IRScope.lexicalParent:Lorg/jruby/ir/IRScope;
aload 0
invokevirtual org.jruby.ir.IRScope.addChildScope:(Lorg/jruby/ir/IRScope;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/IRScope;
public int getScopeId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.scopeId:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.scopeId:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public void setInterpreterContext(org.jruby.ir.interpreter.InterpreterContext);
descriptor: (Lorg/jruby/ir/interpreter/InterpreterContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 interpreterContext Lorg/jruby/ir/interpreter/InterpreterContext;
MethodParameters:
Name Flags
interpreterContext
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpne 1
aload 0
getfield org.jruby.ir.IRScope.scopeId:I
aload 1
checkcast org.jruby.ir.IRScope
getfield org.jruby.ir.IRScope.scopeId:I
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 other Ljava/lang/Object;
MethodParameters:
Name Flags
other
protected void addChildScope(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
ifnonnull 1
aload 0
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
0 3 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
scope
public java.util.List<org.jruby.ir.IRScope> getLexicalScopes();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
ifnonnull 1
aload 0
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.lexicalChildren:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
Signature: ()Ljava/util/List<Lorg/jruby/ir/IRScope;>;
public void addClosure(org.jruby.ir.IRClosure);
descriptor: (Lorg/jruby/ir/IRClosure;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
ifnonnull 1
aload 0
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
0 3 1 closure Lorg/jruby/ir/IRClosure;
MethodParameters:
Name Flags
closure
public void removeClosure(org.jruby.ir.IRClosure);
descriptor: (Lorg/jruby/ir/IRClosure;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
ifnull 1
aload 0
getfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
1: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 closure Lorg/jruby/ir/IRClosure;
MethodParameters:
Name Flags
closure
public org.jruby.ir.operands.Label getNewLabel(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/jruby/ir/operands/Label;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: new org.jruby.ir.operands.Label
dup
aload 1
aload 0
dup
getfield org.jruby.ir.IRScope.nextLabelIndex:I
dup_x1
iconst_1
iadd
putfield org.jruby.ir.IRScope.nextLabelIndex:I
invokespecial org.jruby.ir.operands.Label.<init>:(Ljava/lang/String;I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
0 1 1 prefix Ljava/lang/String;
MethodParameters:
Name Flags
prefix
public org.jruby.ir.operands.Label getNewLabel();
descriptor: ()Lorg/jruby/ir/operands/Label;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "LBL"
invokevirtual org.jruby.ir.IRScope.getNewLabel:(Ljava/lang/String;)Lorg/jruby/ir/operands/Label;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public java.util.Collection<org.jruby.ir.IRClosure> getClosures();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
ifnonnull 1
getstatic org.jruby.ir.IRScope.NO_CLOSURES:Ljava/util/Collection;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.jruby.ir.IRScope.nestedClosures:Ljava/util/List;
StackMap locals:
StackMap stack: java.util.Collection
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
Signature: ()Ljava/util/Collection<Lorg/jruby/ir/IRClosure;>;
public org.jruby.ir.IRManager getManager();
descriptor: ()Lorg/jruby/ir/IRManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public void setIsMaybeUsingRefinements();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.MAYBE_USING_REFINEMENTS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public boolean parentMaybeUsingRefinements();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 5
2: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.MAYBE_USING_REFINEMENTS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 3
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 1
instanceof org.jruby.ir.IREvalScript
ifeq 4
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 1
StackMap locals:
StackMap stack:
5: aload 1
ifnonnull 2
end local 1 6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/IRScope;
1 6 1 s Lorg/jruby/ir/IRScope;
public boolean maybeUsingRefinements();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.MAYBE_USING_REFINEMENTS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.IRScope getLexicalParent();
descriptor: ()Lorg/jruby/ir/IRScope;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.lexicalParent:Lorg/jruby/ir/IRScope;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.parser.StaticScope getStaticScope();
descriptor: ()Lorg/jruby/parser/StaticScope;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.staticScope:Lorg/jruby/parser/StaticScope;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean isWithinEND();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 4
2: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 1
checkcast org.jruby.ir.IRClosure
invokevirtual org.jruby.ir.IRClosure.isEND:()Z
ifeq 3
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 1
StackMap locals:
StackMap stack:
4: aload 1
ifnull 5
aload 1
instanceof org.jruby.ir.IRClosure
ifne 2
end local 1 5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/IRScope;
1 5 1 current Lorg/jruby/ir/IRScope;
public org.jruby.ir.IRMethod getNearestMethod();
descriptor: ()Lorg/jruby/ir/IRMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 3
2: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
ifnull 4
aload 1
instanceof org.jruby.ir.IRMethod
ifeq 2
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.ir.IRMethod
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
1 5 1 current Lorg/jruby/ir/IRScope;
public org.jruby.ir.IRScope getNearestTopLocalVariableScope();
descriptor: ()Lorg/jruby/ir/IRScope;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 3
2: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
ifnull 4
aload 1
invokevirtual org.jruby.ir.IRScope.isTopLocalVariableScope:()Z
ifeq 2
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
1 5 1 current Lorg/jruby/ir/IRScope;
public boolean isScopeContainedBy(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: goto 4
2: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 1
aload 2
if_acmpne 3
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 2
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 2
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/IRScope;
0 6 1 parentScope Lorg/jruby/ir/IRScope;
1 6 2 current Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
parentScope
public int getNearestModuleReferencingScopeDepth();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
astore 2
start local 2 2: goto 7
3: StackMap locals: int org.jruby.ir.IRScope
StackMap stack:
aload 2
ifnull 4
aload 2
instanceof org.jruby.ir.IREvalScript
ifeq 5
StackMap locals:
StackMap stack:
4: iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 2
6: aload 2
instanceof org.jruby.ir.IRFor
ifne 7
iinc 1 1
7: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.ir.IRModuleBody
ifeq 3
8: iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/ir/IRScope;
1 9 1 n I
2 9 2 current Lorg/jruby/ir/IRScope;
public java.lang.String getId();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getName:()Lorg/jruby/RubySymbol;
invokevirtual org.jruby.RubySymbol.idString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.RubySymbol getName();
descriptor: ()Lorg/jruby/RubySymbol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getManager:()Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ir.IRScope.name:Lorg/jruby/util/ByteList;
invokevirtual org.jruby.Ruby.newSymbol:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubySymbol;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.util.ByteList getByteName();
descriptor: ()Lorg/jruby/util/ByteList;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.name:Lorg/jruby/util/ByteList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public void setByteName(org.jruby.util.ByteList);
descriptor: (Lorg/jruby/util/ByteList;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.ir.IRScope.name:Lorg/jruby/util/ByteList;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 name Lorg/jruby/util/ByteList;
MethodParameters:
Name Flags
name
public void setFileName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.IRScope.getRootLexicalScope:()Lorg/jruby/ir/IRScope;
aload 1
invokevirtual org.jruby.ir.IRScope.setFileName:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 filename Ljava/lang/String;
MethodParameters:
Name Flags
filename
public java.lang.String getFileName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getFile:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public java.lang.String getFile();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getRootLexicalScope:()Lorg/jruby/ir/IRScope;
invokevirtual org.jruby.ir.IRScope.getFile:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public int getLineNumber();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.lineNumber:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public int getLine();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.lineNumber:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.IRScope getRootLexicalScope();
descriptor: ()Lorg/jruby/ir/IRScope;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 3
StackMap locals: org.jruby.ir.IRScope
StackMap stack:
2: aload 1
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 1
StackMap locals:
StackMap stack:
3: aload 1
ifnull 4
aload 1
invokevirtual org.jruby.ir.IRScope.isScriptScope:()Z
ifeq 2
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
1 5 1 current Lorg/jruby/ir/IRScope;
public boolean isNestedInClosure(org.jruby.ir.IRClosure);
descriptor: (Lorg/jruby/ir/IRClosure;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: goto 4
2: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 2
aload 1
if_acmpne 3
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 2
StackMap locals:
StackMap stack:
4: aload 2
ifnull 5
aload 2
invokevirtual org.jruby.ir.IRScope.isTopLocalVariableScope:()Z
ifeq 2
end local 2 5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/IRScope;
0 6 1 closure Lorg/jruby/ir/IRClosure;
1 5 2 s Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
closure
public void setHasLoopsFlag();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_LOOPS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public boolean hasLoops();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_LOOPS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean hasExplicitCallProtocol();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_EXPLICIT_CALL_PROTOCOL:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public void setExplicitCallProtocolFlag();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_EXPLICIT_CALL_PROTOCOL:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public boolean receivesKeywordArgs();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.RECEIVES_KEYWORD_ARGS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean bindingHasEscaped();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean usesEval();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_EVAL:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean usesZSuper();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean canReceiveNonlocalReturns();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.computeScopeFlags:()V
1: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public void putLiveVariablesProblem(org.jruby.ir.dataflow.analyses.LiveVariablesProblem);
descriptor: (Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 3
1: aload 1
ifnull 2
new java.lang.IllegalStateException
dup
ldc "LVP being stored when no FIC"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getDataFlowProblems:()Ljava/util/Map;
ldc "Live Variables Analysis"
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
0 5 1 problem Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
MethodParameters:
Name Flags
problem
public org.jruby.ir.dataflow.analyses.LiveVariablesProblem getLiveVariablesProblem();
descriptor: ()Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getDataFlowProblems:()Ljava/util/Map;
ldc "Live Variables Analysis"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.dataflow.analyses.LiveVariablesProblem
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public void putStoreLocalVarPlacementProblem(org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem);
descriptor: (Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 3
1: aload 1
ifnull 2
new java.lang.IllegalStateException
dup
ldc "StoreLocalVarPlacementProblem being stored when no FIC"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getDataFlowProblems:()Ljava/util/Map;
ldc "Placement of local-var stores"
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
0 5 1 problem Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;
MethodParameters:
Name Flags
problem
public org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem getStoreLocalVarPlacementProblem();
descriptor: ()Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getDataFlowProblems:()Ljava/util/Map;
ldc "Placement of local-var stores"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public void putUnboxableOpsAnalysisProblem(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 3
1: aload 1
ifnull 2
new java.lang.IllegalStateException
dup
ldc "UboxableOpsAnalysisProblem being stored when no FIC"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getDataFlowProblems:()Ljava/util/Map;
ldc "UnboxableOpsAnalysis"
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
0 5 1 problem Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
MethodParameters:
Name Flags
problem
public org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem getUnboxableOpsAnalysisProblem();
descriptor: ()Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getDataFlowProblems:()Ljava/util/Map;
ldc "UnboxableOpsAnalysis"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.representations.CFG getCFG();
descriptor: ()Lorg/jruby/ir/representations/CFG;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getOptimizedInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 2
1: aload 0
invokevirtual org.jruby.ir.IRScope.getOptimizedInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getCFG:()Lorg/jruby/ir/representations/CFG;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 3
aload 0
invokevirtual org.jruby.ir.IRScope.prepareFullBuildCommon:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getCFG:()Lorg/jruby/ir/representations/CFG;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/IRScope;
public java.util.List<org.jruby.ir.passes.CompilerPass> getExecutedPasses();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 1
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getExecutedPasses:()Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
Signature: ()Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
private void runCompilerPasses(java.util.List<org.jruby.ir.passes.CompilerPass>, org.jruby.ir.util.IGVDumper);
descriptor: (Ljava/util/List;Lorg/jruby/ir/util/IGVDumper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
aload 2
aload 0
invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
ldc "Start"
invokevirtual org.jruby.ir.util.IGVDumper.dump:(Lorg/jruby/ir/representations/CFG;Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 1
invokestatic org.jruby.ir.IRManager.schedulePasses:(Ljava/util/List;)Lorg/jruby/ir/passes/CompilerPassScheduler;
astore 3
start local 3 2: aload 3
invokeinterface org.jruby.ir.passes.CompilerPassScheduler.iterator:()Ljava/util/Iterator;
astore 5
goto 6
StackMap locals: org.jruby.ir.IRScope java.util.List org.jruby.ir.util.IGVDumper org.jruby.ir.passes.CompilerPassScheduler top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.passes.CompilerPass
astore 4
start local 4 4: aload 4
aload 0
invokevirtual org.jruby.ir.passes.CompilerPass.run:(Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
pop
5: aload 2
ifnull 6
aload 2
aload 0
invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
aload 4
invokevirtual org.jruby.ir.passes.CompilerPass.getShortLabel:()Ljava/lang/String;
invokevirtual org.jruby.ir.util.IGVDumper.dump:(Lorg/jruby/ir/representations/CFG;Ljava/lang/String;)V
end local 4 6: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: getstatic org.jruby.RubyInstanceConfig.IR_UNBOXING:Z
ifeq 11
8: new org.jruby.ir.passes.UnboxingPass
dup
invokespecial org.jruby.ir.passes.UnboxingPass.<init>:()V
astore 4
start local 4 9: aload 4
aload 0
invokevirtual org.jruby.ir.passes.CompilerPass.run:(Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
pop
10: aload 2
ifnull 11
aload 2
aload 0
invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
aload 4
invokevirtual org.jruby.ir.passes.CompilerPass.getShortLabel:()Ljava/lang/String;
invokevirtual org.jruby.ir.util.IGVDumper.dump:(Lorg/jruby/ir/representations/CFG;Ljava/lang/String;)V
end local 4 11: StackMap locals: org.jruby.ir.IRScope java.util.List org.jruby.ir.util.IGVDumper org.jruby.ir.passes.CompilerPassScheduler
StackMap stack:
aload 2
ifnull 12
aload 2
invokevirtual org.jruby.ir.util.IGVDumper.close:()V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/ir/IRScope;
0 13 1 passes Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
0 13 2 dumper Lorg/jruby/ir/util/IGVDumper;
2 13 3 scheduler Lorg/jruby/ir/passes/CompilerPassScheduler;
4 6 4 pass Lorg/jruby/ir/passes/CompilerPass;
9 11 4 pass Lorg/jruby/ir/passes/CompilerPass;
Signature: (Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;Lorg/jruby/ir/util/IGVDumper;)V
MethodParameters:
Name Flags
passes
dumper
public org.jruby.ir.interpreter.InterpreterContext allocateInterpreterContext(java.util.List<org.jruby.ir.instructions.Instr>);
descriptor: (Ljava/util/List;)Lorg/jruby/ir/interpreter/InterpreterContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.jruby.ir.interpreter.InterpreterContext
dup
aload 0
aload 1
invokespecial org.jruby.ir.interpreter.InterpreterContext.<init>:(Lorg/jruby/ir/IRScope;Ljava/util/List;)V
putfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
1: getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_DEBUG:Z
ifeq 2
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
0 3 1 instructions Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
Signature: (Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;)Lorg/jruby/ir/interpreter/InterpreterContext;
MethodParameters:
Name Flags
instructions
public org.jruby.ir.interpreter.InterpreterContext allocateInterpreterContext(java.util.concurrent.Callable<java.util.List<org.jruby.ir.instructions.Instr>>);
descriptor: (Ljava/util/concurrent/Callable;)Lorg/jruby/ir/interpreter/InterpreterContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.jruby.ir.interpreter.InterpreterContext
dup
aload 0
aload 1
invokespecial org.jruby.ir.interpreter.InterpreterContext.<init>:(Lorg/jruby/ir/IRScope;Ljava/util/concurrent/Callable;)V
putfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
1: getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_DEBUG:Z
ifeq 2
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
0 3 1 instructions Ljava/util/concurrent/Callable<Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;>;
Signature: (Ljava/util/concurrent/Callable<Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;>;)Lorg/jruby/ir/interpreter/InterpreterContext;
MethodParameters:
Name Flags
instructions
private org.jruby.ir.instructions.Instr[] cloneInstrs();
descriptor: ()[Lorg/jruby/ir/instructions/Instr;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: new org.jruby.ir.transformations.inlining.SimpleCloneInfo
dup
aload 0
iconst_0
invokespecial org.jruby.ir.transformations.inlining.SimpleCloneInfo.<init>:(Lorg/jruby/ir/IRScope;Z)V
astore 1
start local 1 1: aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.getInstructions:()[Lorg/jruby/ir/instructions/Instr;
astore 2
start local 2 2: aload 2
arraylength
istore 3
start local 3 3: iload 3
anewarray org.jruby.ir.instructions.Instr
astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 8
6: StackMap locals: org.jruby.ir.IRScope org.jruby.ir.transformations.inlining.SimpleCloneInfo org.jruby.ir.instructions.Instr[] int org.jruby.ir.instructions.Instr[] int
StackMap stack:
aload 4
iload 5
aload 2
iload 5
aaload
aload 1
invokevirtual org.jruby.ir.instructions.Instr.clone:(Lorg/jruby/ir/transformations/inlining/CloneInfo;)Lorg/jruby/ir/instructions/Instr;
aastore
7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 3
if_icmplt 6
end local 5 9: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
1 10 1 cloneInfo Lorg/jruby/ir/transformations/inlining/SimpleCloneInfo;
2 10 2 instructions [Lorg/jruby/ir/instructions/Instr;
3 10 3 length I
4 10 4 newInstructions [Lorg/jruby/ir/instructions/Instr;
5 9 5 i I
private void prepareFullBuildCommon();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 1
return
1: StackMap locals:
StackMap stack:
aload 0
new org.jruby.ir.interpreter.FullInterpreterContext
dup
aload 0
aload 0
invokevirtual org.jruby.ir.IRScope.cloneInstrs:()[Lorg/jruby/ir/instructions/Instr;
invokespecial org.jruby.ir.interpreter.FullInterpreterContext.<init>:(Lorg/jruby/ir/IRScope;[Lorg/jruby/ir/instructions/Instr;)V
putfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
public synchronized org.jruby.ir.interpreter.FullInterpreterContext prepareFullBuild();
descriptor: ()Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 1
aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 2
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.buildComplete:()Z
ifeq 2
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getClosures:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRScope
astore 1
start local 1 4: aload 1
invokevirtual org.jruby.ir.IRScope.prepareFullBuild:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
pop
end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
invokevirtual org.jruby.ir.IRScope.prepareFullBuildCommon:()V
7: aload 0
aload 0
invokevirtual org.jruby.ir.IRScope.getManager:()Lorg/jruby/ir/IRManager;
aload 0
invokevirtual org.jruby.ir.IRManager.getCompilerPasses:(Lorg/jruby/ir/IRScope;)Ljava/util/List;
aload 0
invokevirtual org.jruby.ir.IRScope.dumpToIGV:()Lorg/jruby/ir/util/IGVDumper;
invokevirtual org.jruby.ir.IRScope.runCompilerPasses:(Ljava/util/List;Lorg/jruby/ir/util/IGVDumper;)V
8: aload 0
invokevirtual org.jruby.ir.IRScope.getManager:()Lorg/jruby/ir/IRManager;
aload 0
invokevirtual org.jruby.ir.IRManager.optimizeIfSimpleScope:(Lorg/jruby/ir/IRScope;)V
9: new org.jruby.ir.passes.AddCallProtocolInstructions
dup
invokespecial org.jruby.ir.passes.AddCallProtocolInstructions.<init>:()V
aload 0
invokevirtual org.jruby.ir.passes.AddCallProtocolInstructions.run:(Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
pop
10: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.generateInstructionsForInterpretation:()V
11: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/jruby/ir/IRScope;
4 5 1 scope Lorg/jruby/ir/IRScope;
public java.lang.String getFullyQualifiedName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
ifnonnull 1
aload 0
invokevirtual org.jruby.ir.IRScope.getId:()Ljava/lang/String;
areturn
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
invokevirtual org.jruby.ir.IRScope.getFullyQualifiedName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "::"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
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;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.util.IGVDumper dumpToIGV();
descriptor: ()Lorg/jruby/ir/util/IGVDumper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic org.jruby.RubyInstanceConfig.IR_DEBUG_IGV:Ljava/lang/String;
ifnull 5
1: getstatic org.jruby.RubyInstanceConfig.IR_DEBUG_IGV:Ljava/lang/String;
astore 1
start local 1 2: aload 1
ldc ":"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 3
aload 1
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getFileName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ir.IRScope.getLineNumber:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.getFileName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: StackMap locals:
StackMap stack:
new org.jruby.ir.util.IGVDumper
dup
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getFullyQualifiedName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "; line "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ir.IRScope.getLineNumber:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.jruby.ir.util.IGVDumper.<init>:(Ljava/lang/String;)V
areturn
end local 1 5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/IRScope;
2 5 1 spec Ljava/lang/String;
public synchronized org.jruby.ir.representations.BasicBlock[] prepareForCompilation();
descriptor: ()[Lorg/jruby/ir/representations/BasicBlock;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 2
aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.buildComplete:()Z
ifeq 2
1: aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getLinearizedBBList:()[Lorg/jruby/ir/representations/BasicBlock;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 3
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.buildComplete:()Z
ifeq 3
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getLinearizedBBList:()[Lorg/jruby/ir/representations/BasicBlock;
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getClosures:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
4: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRScope
astore 1
start local 1 5: aload 1
invokevirtual org.jruby.ir.IRScope.prepareForCompilation:()[Lorg/jruby/ir/representations/BasicBlock;
pop
end local 1 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
invokevirtual org.jruby.ir.IRScope.prepareFullBuildCommon:()V
8: aload 0
aload 0
invokevirtual org.jruby.ir.IRScope.getManager:()Lorg/jruby/ir/IRManager;
aload 0
invokevirtual org.jruby.ir.IRManager.getJITPasses:(Lorg/jruby/ir/IRScope;)Ljava/util/List;
aload 0
invokevirtual org.jruby.ir.IRScope.dumpToIGV:()Lorg/jruby/ir/util/IGVDumper;
invokevirtual org.jruby.ir.IRScope.runCompilerPasses:(Ljava/util/List;Lorg/jruby/ir/util/IGVDumper;)V
9: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.linearizeBasicBlocks:()[Lorg/jruby/ir/representations/BasicBlock;
astore 1
start local 1 10: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRScope;
5 6 1 scope Lorg/jruby/ir/IRScope;
10 11 1 bbs [Lorg/jruby/ir/representations/BasicBlock;
public java.util.Map<org.jruby.ir.representations.BasicBlock, org.jruby.ir.operands.Label> buildJVMExceptionTable();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: new java.util.HashMap
dup
iconst_1
invokespecial java.util.HashMap.<init>:(I)V
astore 1
start local 1 1: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getLinearizedBBList:()[Lorg/jruby/ir/representations/BasicBlock;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.jruby.ir.IRScope java.util.Map top int int org.jruby.ir.representations.BasicBlock[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 0
invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
aload 2
invokevirtual org.jruby.ir.representations.CFG.getRescuerBBFor:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/representations/BasicBlock;
astore 6
start local 6 4: aload 6
ifnull 6
5: aload 1
aload 2
aload 6
invokevirtual org.jruby.ir.representations.BasicBlock.getLabel:()Lorg/jruby/ir/operands/Label;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 2 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 2
8: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/ir/IRScope;
1 9 1 map Ljava/util/Map<Lorg/jruby/ir/representations/BasicBlock;Lorg/jruby/ir/operands/Label;>;
3 6 2 bb Lorg/jruby/ir/representations/BasicBlock;
4 6 6 rescueBB Lorg/jruby/ir/representations/BasicBlock;
Signature: ()Ljava/util/Map<Lorg/jruby/ir/representations/BasicBlock;Lorg/jruby/ir/operands/Label;>;
public java.util.EnumSet<org.jruby.ir.IRFlags> getFlags();
descriptor: ()Ljava/util/EnumSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
Signature: ()Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
private void initScopeFlags();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_CAPTURE_CALLERS_BINDING:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_BREAK_INSTRS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_EVAL:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
7: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_DYNSCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
8: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_LASTLINE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
9: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_BACKREF:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
10: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_VISIBILITY:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
11: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_BLOCK:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
12: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_SELF:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
13: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_METHODNAME:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
14: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_LINE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
15: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_CLASS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
16: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_FILENAME:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
17: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_SCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
18: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/jruby/ir/IRScope;
private void bindingEscapedScopeFlagsCheck();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.jruby.ir.IREvalScript
ifne 1
aload 0
instanceof org.jruby.ir.IRScriptBody
ifeq 3
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRScope;
private void calculateClosureScopeFlags();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getClosures:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 14
StackMap locals: org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRClosure
astore 1
start local 1 2: aload 1
invokevirtual org.jruby.ir.IRClosure.computeScopeFlags:()V
3: aload 1
invokevirtual org.jruby.ir.IRClosure.usesEval:()Z
ifeq 8
4: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
7: goto 14
8: StackMap locals: org.jruby.ir.IRScope org.jruby.ir.IRClosure java.util.Iterator
StackMap stack:
aload 1
getfield org.jruby.ir.IRClosure.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_BREAK_INSTRS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifne 9
aload 1
getfield org.jruby.ir.IRClosure.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 10
9: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
10: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.ir.IRClosure.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifne 11
aload 1
getfield org.jruby.ir.IRClosure.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 12
11: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRClosure.usesZSuper:()Z
ifeq 14
13: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
end local 1 14: StackMap locals: org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
15: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/jruby/ir/IRScope;
2 14 1 cl Lorg/jruby/ir/IRClosure;
private void computeNeedsDynamicScopeFlag();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic org.jruby.ir.IRScope.NEEDS_DYNAMIC_SCOPE_FLAGS:Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.jruby.ir.IRScope top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRFlags
astore 1
start local 1 2: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
aload 1
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 5
3: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REQUIRES_DYNSCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
4: return
end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/IRScope;
2 5 1 f Lorg/jruby/ir/IRFlags;
public void computeScopeFlagsEarly(java.util.List<org.jruby.ir.instructions.Instr>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.IRScope.initScopeFlags:()V
1: aload 0
invokevirtual org.jruby.ir.IRScope.bindingEscapedScopeFlagsCheck:()V
2: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.jruby.ir.IRScope java.util.List top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.instructions.Instr
astore 2
start local 2 4: aload 2
aload 0
invokevirtual org.jruby.ir.instructions.Instr.computeScopeFlags:(Lorg/jruby/ir/IRScope;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
invokevirtual org.jruby.ir.IRScope.calculateClosureScopeFlags:()V
7: aload 0
invokevirtual org.jruby.ir.IRScope.computeNeedsDynamicScopeFlag:()V
8: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.FLAGS_COMPUTED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
0 10 1 instructions Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
4 5 2 i Lorg/jruby/ir/instructions/Instr;
Signature: (Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;)V
MethodParameters:
Name Flags
instructions
public void computeScopeFlags();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.FLAGS_COMPUTED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.initScopeFlags:()V
2: aload 0
invokevirtual org.jruby.ir.IRScope.bindingEscapedScopeFlagsCheck:()V
3: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 6
4: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.computeScopeFlagsFromInstructions:()V
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.computeScopeFlagsFromInstructions:()V
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.calculateClosureScopeFlags:()V
8: aload 0
invokevirtual org.jruby.ir.IRScope.computeNeedsDynamicScopeFlag:()V
9: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.FLAGS_COMPUTED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRScope;
public abstract org.jruby.ir.IRScopeType getScopeType();
descriptor: ()Lorg/jruby/ir/IRScopeType;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getScopeType:()Lorg/jruby/ir/IRScopeType;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ir.IRScope.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ir.IRScope.getFile:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ir.IRScope.getLine:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ir.IRScope.toStringCompileForm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public java.lang.String toStringCompileForm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 1
ldc "optimized"
goto 3
StackMap locals:
StackMap stack:
1: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 2
ldc "full"
goto 3
StackMap locals:
StackMap stack:
2: ldc "startup"
StackMap locals:
StackMap stack: java.lang.String
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/IRScope;
public java.lang.String debugOutput();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.toStringInstrs:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public java.lang.String toStringInstrs();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnull 2
1: new java.lang.StringBuilder
dup
ldc "Instructions:\n"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.toStringInstrs:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.toStringInstrs:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.operands.Variable getSelf();
descriptor: ()Lorg/jruby/ir/operands/Variable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.jruby.ir.operands.Self.SELF:Lorg/jruby/ir/operands/Self;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.operands.Variable createCurrentModuleVariable();
descriptor: ()Lorg/jruby/ir/operands/Variable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
1: aload 0
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
invokestatic org.jruby.ir.operands.TemporaryCurrentModuleVariable.ModuleVariableFor:(I)Lorg/jruby/ir/operands/TemporaryCurrentModuleVariable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.operands.Variable createCurrentScopeVariable();
descriptor: ()Lorg/jruby/ir/operands/Variable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
1: aload 0
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
invokestatic org.jruby.ir.operands.TemporaryCurrentScopeVariable.ScopeVariableFor:(I)Lorg/jruby/ir/operands/TemporaryCurrentScopeVariable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public java.util.Map<org.jruby.RubySymbol, org.jruby.ir.operands.LocalVariable> getLocalVariables();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
Signature: ()Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/ir/operands/LocalVariable;>;
public java.util.Set<org.jruby.ir.operands.LocalVariable> getUsedLocalVariables();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getUsedLocalVariables:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
Signature: ()Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
public void setLocalVariables(java.util.Map<org.jruby.RubySymbol, org.jruby.ir.operands.LocalVariable>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 variables Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/ir/operands/LocalVariable;>;
Signature: (Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/ir/operands/LocalVariable;>;)V
MethodParameters:
Name Flags
variables
public void setNextLabelIndex(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.jruby.ir.IRScope.nextLabelIndex:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 index I
MethodParameters:
Name Flags
index
public int getNextLabelIndex();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.nextLabelIndex:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.operands.LocalVariable lookupExistingLVar(org.jruby.RubySymbol);
descriptor: (Lorg/jruby/RubySymbol;)Lorg/jruby/ir/operands/LocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
0 1 1 name Lorg/jruby/RubySymbol;
MethodParameters:
Name Flags
name
protected org.jruby.ir.operands.LocalVariable findExistingLocalVariable(org.jruby.RubySymbol, int);
descriptor: (Lorg/jruby/RubySymbol;I)Lorg/jruby/ir/operands/LocalVariable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
0 1 1 name Lorg/jruby/RubySymbol;
0 1 2 depth I
MethodParameters:
Name Flags
name
depth
public org.jruby.ir.operands.LocalVariable getLocalVariable(org.jruby.RubySymbol, int);
descriptor: (Lorg/jruby/RubySymbol;I)Lorg/jruby/ir/operands/LocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual org.jruby.ir.IRScope.findExistingLocalVariable:(Lorg/jruby/RubySymbol;I)Lorg/jruby/ir/operands/LocalVariable;
astore 3
start local 3 1: aload 3
ifnonnull 4
2: aload 0
aload 1
iload 2
invokevirtual org.jruby.ir.IRScope.getNewLocalVariable:(Lorg/jruby/RubySymbol;I)Lorg/jruby/ir/operands/LocalVariable;
astore 3
3: goto 6
StackMap locals: org.jruby.ir.operands.LocalVariable
StackMap stack:
4: aload 3
invokevirtual org.jruby.ir.operands.LocalVariable.getScopeDepth:()I
iload 2
if_icmpeq 6
5: aload 3
iload 2
invokevirtual org.jruby.ir.operands.LocalVariable.cloneForDepth:(I)Lorg/jruby/ir/operands/LocalVariable;
astore 3
6: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/IRScope;
0 7 1 name Lorg/jruby/RubySymbol;
0 7 2 scopeDepth I
1 7 3 lvar Lorg/jruby/ir/operands/LocalVariable;
MethodParameters:
Name Flags
name
scopeDepth
public org.jruby.ir.operands.LocalVariable getNewLocalVariable(org.jruby.RubySymbol, int);
descriptor: (Lorg/jruby/RubySymbol;I)Lorg/jruby/ir/operands/LocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.jruby.ir.IRScope.$assertionsDisabled:Z
ifne 1
iload 2
ifeq 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Scope depth is non-zero for new-var request "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
new org.jruby.ir.operands.LocalVariable
dup
aload 1
iload 2
aload 0
invokevirtual org.jruby.ir.IRScope.getStaticScope:()Lorg/jruby/parser/StaticScope;
aload 1
invokevirtual org.jruby.RubySymbol.idString:()Ljava/lang/String;
invokevirtual org.jruby.parser.StaticScope.addVariable:(Ljava/lang/String;)I
invokespecial org.jruby.ir.operands.LocalVariable.<init>:(Lorg/jruby/RubySymbol;II)V
astore 3
start local 3 2: aload 0
getfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/IRScope;
0 4 1 name Lorg/jruby/RubySymbol;
0 4 2 scopeDepth I
2 4 3 lvar Lorg/jruby/ir/operands/LocalVariable;
MethodParameters:
Name Flags
name
scopeDepth
public org.jruby.ir.operands.TemporaryLocalVariable createTemporaryVariable();
descriptor: ()Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.LOCAL:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.IRScope.getNewTemporaryVariable:(Lorg/jruby/ir/operands/TemporaryVariableType;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.operands.TemporaryLocalVariable getNewTemporaryVariableFor(org.jruby.ir.operands.LocalVariable);
descriptor: (Lorg/jruby/ir/operands/LocalVariable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
1: new org.jruby.ir.operands.TemporaryLocalReplacementVariable
dup
aload 1
invokevirtual org.jruby.ir.operands.LocalVariable.getId:()Ljava/lang/String;
aload 0
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
invokespecial org.jruby.ir.operands.TemporaryLocalReplacementVariable.<init>:(Ljava/lang/String;I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 var Lorg/jruby/ir/operands/LocalVariable;
MethodParameters:
Name Flags
var
public org.jruby.ir.operands.TemporaryLocalVariable getNewTemporaryVariable(org.jruby.ir.operands.TemporaryVariableType);
descriptor: (Lorg/jruby/ir/operands/TemporaryVariableType;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType:()[I
aload 1
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 7
2: 5
3: 1
4: 3
default: 9
}
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
dup
getfield org.jruby.ir.interpreter.FullInterpreterContext.floatVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.interpreter.FullInterpreterContext.floatVariableIndex:I
2: new org.jruby.ir.operands.TemporaryFloatVariable
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
getfield org.jruby.ir.interpreter.FullInterpreterContext.floatVariableIndex:I
invokespecial org.jruby.ir.operands.TemporaryFloatVariable.<init>:(I)V
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
dup
getfield org.jruby.ir.interpreter.FullInterpreterContext.fixnumVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.interpreter.FullInterpreterContext.fixnumVariableIndex:I
4: new org.jruby.ir.operands.TemporaryFixnumVariable
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
getfield org.jruby.ir.interpreter.FullInterpreterContext.fixnumVariableIndex:I
invokespecial org.jruby.ir.operands.TemporaryFixnumVariable.<init>:(I)V
areturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
dup
getfield org.jruby.ir.interpreter.FullInterpreterContext.booleanVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.interpreter.FullInterpreterContext.booleanVariableIndex:I
6: new org.jruby.ir.operands.TemporaryBooleanVariable
dup
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
getfield org.jruby.ir.interpreter.FullInterpreterContext.booleanVariableIndex:I
invokespecial org.jruby.ir.operands.TemporaryBooleanVariable.<init>:(I)V
areturn
7: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
iconst_1
iadd
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
8: aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
aload 0
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
invokevirtual org.jruby.ir.IRManager.newTemporaryLocalVariable:(I)Lorg/jruby/ir/operands/TemporaryLocalVariable;
areturn
9: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Invalid temporary variable being alloced in this scope: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
0 10 1 type Lorg/jruby/ir/operands/TemporaryVariableType;
MethodParameters:
Name Flags
type
public void setTemporaryVariableCount(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
iadd
putfield org.jruby.ir.IRScope.temporaryVariableIndex:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 count I
MethodParameters:
Name Flags
count
public org.jruby.ir.operands.TemporaryLocalVariable getNewUnboxedVariable(java.lang.Class);
descriptor: (Ljava/lang/Class;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpne 3
1: getstatic org.jruby.ir.operands.TemporaryVariableType.FLOAT:Lorg/jruby/ir/operands/TemporaryVariableType;
astore 2
start local 2 2: goto 10
end local 2 StackMap locals:
StackMap stack:
3: aload 1
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 6
4: getstatic org.jruby.ir.operands.TemporaryVariableType.FIXNUM:Lorg/jruby/ir/operands/TemporaryVariableType;
astore 2
start local 2 5: goto 10
end local 2 StackMap locals:
StackMap stack:
6: aload 1
ldc Ljava/lang/Boolean;
if_acmpne 9
7: getstatic org.jruby.ir.operands.TemporaryVariableType.BOOLEAN:Lorg/jruby/ir/operands/TemporaryVariableType;
astore 2
start local 2 8: goto 10
end local 2 9: StackMap locals:
StackMap stack:
getstatic org.jruby.ir.operands.TemporaryVariableType.LOCAL:Lorg/jruby/ir/operands/TemporaryVariableType;
astore 2
start local 2 10: StackMap locals: org.jruby.ir.operands.TemporaryVariableType
StackMap stack:
aload 0
aload 2
invokevirtual org.jruby.ir.IRScope.getNewTemporaryVariable:(Lorg/jruby/ir/operands/TemporaryVariableType;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRScope;
0 11 1 type Ljava/lang/Class;
2 3 2 varType Lorg/jruby/ir/operands/TemporaryVariableType;
5 6 2 varType Lorg/jruby/ir/operands/TemporaryVariableType;
8 9 2 varType Lorg/jruby/ir/operands/TemporaryVariableType;
10 11 2 varType Lorg/jruby/ir/operands/TemporaryVariableType;
MethodParameters:
Name Flags
type
public int getTemporaryVariablesCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.temporaryVariableIndex:I
iconst_1
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.operands.Variable getNewInlineVariable(org.jruby.util.ByteList, org.jruby.ir.operands.Variable);
descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/Variable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ir.IRScope.createTemporaryVariable:()Lorg/jruby/ir/operands/TemporaryLocalVariable;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
0 1 1 inlinePrefix Lorg/jruby/util/ByteList;
0 1 2 v Lorg/jruby/ir/operands/Variable;
MethodParameters:
Name Flags
inlinePrefix
v
public int getLocalVariablesCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.localVars:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean usesLocalVariable(org.jruby.ir.operands.Variable);
descriptor: (Lorg/jruby/ir/operands/Variable;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
aload 1
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.usesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
0 1 1 v Lorg/jruby/ir/operands/Variable;
MethodParameters:
Name Flags
v
public boolean definesLocalVariable(org.jruby.ir.operands.Variable);
descriptor: (Lorg/jruby/ir/operands/Variable;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
aload 1
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
0 1 1 v Lorg/jruby/ir/operands/Variable;
MethodParameters:
Name Flags
v
public boolean hasBeenBuilt();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.interpreter.FullInterpreterContext getExecutionContext();
descriptor: ()Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.interpreter.InterpreterContext getInterpreterContext();
descriptor: ()Lorg/jruby/ir/interpreter/InterpreterContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.interpreter.FullInterpreterContext getFullInterpreterContext();
descriptor: ()Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public org.jruby.ir.interpreter.FullInterpreterContext getOptimizedInterpreterContext();
descriptor: ()Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
protected void depends(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.ir.IRScope.$assertionsDisabled:Z
ifne 1
aload 1
ifnonnull 1
new java.lang.AssertionError
dup
ldc "Unsatisfied dependency and this depends() was set up wrong. Use depends(build()) not depends(build)."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public void resetState();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.jruby.ir.IRScope.interpreterContext:Lorg/jruby/ir/interpreter/InterpreterContext;
1: aload 0
aconst_null
putfield org.jruby.ir.IRScope.fullInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
2: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.FLAGS_COMPUTED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_CAPTURE_CALLERS_BINDING:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_EVAL:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
7: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_BREAK_INSTRS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
8: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.HAS_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
9: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
10: aload 0
getfield org.jruby.ir.IRScope.flags:Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.remove:(Ljava/lang/Object;)Z
pop
11: aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
astore 1
start local 1 12: aload 1
ifnull 18
13: iconst_0
istore 2
start local 2 14: goto 17
15: StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext int
StackMap stack:
aload 1
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getExecutedPasses:()Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.jruby.ir.passes.CompilerPass
aload 0
invokevirtual org.jruby.ir.passes.CompilerPass.invalidate:(Lorg/jruby/ir/IRScope;)Z
ifne 17
16: iinc 2 1
17: StackMap locals:
StackMap stack:
iload 2
aload 1
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getExecutedPasses:()Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 15
end local 2 18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/jruby/ir/IRScope;
12 19 1 fic Lorg/jruby/ir/interpreter/FullInterpreterContext;
14 18 2 i I
private org.jruby.ir.interpreter.FullInterpreterContext inlineFailed(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.jruby.ir.IRScope.inlineFailed:Ljava/lang/String;
1: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
0 2 1 reason Ljava/lang/String;
MethodParameters:
Name Flags
reason
private org.jruby.ir.interpreter.FullInterpreterContext inlineMethodCommon(org.jruby.ir.IRMethod, long, int, boolean);
descriptor: (Lorg/jruby/ir/IRMethod;JIZ)Lorg/jruby/ir/interpreter/FullInterpreterContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
iconst_1
putfield org.jruby.ir.IRScope.alreadyHasInline:Z
1: aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
ifnonnull 2
aload 0
ldc "inline into startup interpreter scope"
invokevirtual org.jruby.ir.IRScope.inlineFailed:(Ljava/lang/String;)Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRMethod.getClosures:()Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifne 3
aload 0
ldc "inline a method which contains nested closures"
invokevirtual org.jruby.ir.IRScope.inlineFailed:(Ljava/lang/String;)Lorg/jruby/ir/interpreter/FullInterpreterContext;
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ir.IRScope.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.duplicate:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
astore 6
start local 6 4: aload 6
lload 2
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.findBasicBlockOf:(J)Lorg/jruby/ir/representations/BasicBlock;
astore 7
start local 7 5: aload 7
lload 2
invokevirtual org.jruby.ir.representations.BasicBlock.siteOf:(J)Lorg/jruby/ir/instructions/Site;
checkcast org.jruby.ir.instructions.CallBase
astore 8
start local 8 6: aload 0
getfield org.jruby.ir.IRScope.compilable:Lorg/jruby/compiler/Compilable;
invokeinterface org.jruby.compiler.Compilable.getImplementationClass:()Lorg/jruby/RubyModule;
astore 9
start local 9 7: new org.jruby.ir.transformations.inlining.CFGInliner
dup
aload 6
invokespecial org.jruby.ir.transformations.inlining.CFGInliner.<init>:(Lorg/jruby/ir/interpreter/FullInterpreterContext;)V
aload 1
aload 9
iload 4
aload 7
aload 8
iload 5
invokevirtual org.jruby.ir.transformations.inlining.CFGInliner.inlineMethod:(Lorg/jruby/ir/IRScope;Lorg/jruby/RubyModule;ILorg/jruby/ir/representations/BasicBlock;Lorg/jruby/ir/instructions/CallBase;Z)Ljava/lang/String;
astore 10
start local 10 8: aload 10
ifnonnull 9
aload 6
goto 10
StackMap locals: org.jruby.ir.IRScope org.jruby.ir.IRMethod long int int org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.representations.BasicBlock org.jruby.ir.instructions.CallBase org.jruby.RubyModule java.lang.String
StackMap stack:
9: aload 0
aload 10
invokevirtual org.jruby.ir.IRScope.inlineFailed:(Ljava/lang/String;)Lorg/jruby/ir/interpreter/FullInterpreterContext;
StackMap locals:
StackMap stack: org.jruby.ir.interpreter.FullInterpreterContext
10: areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRScope;
0 11 1 methodToInline Lorg/jruby/ir/IRMethod;
0 11 2 callsiteId J
0 11 4 classToken I
0 11 5 cloneHost Z
4 11 6 newContext Lorg/jruby/ir/interpreter/FullInterpreterContext;
5 11 7 basicBlock Lorg/jruby/ir/representations/BasicBlock;
6 11 8 call Lorg/jruby/ir/instructions/CallBase;
7 11 9 implClass Lorg/jruby/RubyModule;
8 11 10 error Ljava/lang/String;
MethodParameters:
Name Flags
methodToInline
callsiteId
classToken
cloneHost
public void inlineMethod(org.jruby.ir.IRMethod, long, int, boolean);
descriptor: (Lorg/jruby/ir/IRMethod;JIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
getfield org.jruby.ir.IRScope.alreadyHasInline:Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
iload 4
iload 5
invokevirtual org.jruby.ir.IRScope.inlineMethodCommon:(Lorg/jruby/ir/IRMethod;JIZ)Lorg/jruby/ir/interpreter/FullInterpreterContext;
astore 6
start local 6 2: aload 6
ifnonnull 5
3: getstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
ifeq 4
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Inline of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " failed: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.jruby.ir.IRScope.inlineFailed:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext
StackMap stack:
return
5: StackMap locals:
StackMap stack:
getstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
ifeq 6
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Inline of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " succeeded."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.generateInstructionsForInterpretation:()V
7: aload 0
aload 6
putfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
8: aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getJITCompiler:()Lorg/jruby/compiler/JITCompiler;
aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
getfield org.jruby.ir.IRScope.compilable:Lorg/jruby/compiler/Compilable;
invokevirtual org.jruby.compiler.JITCompiler.getTaskFor:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/compiler/Compilable;)Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
9: return
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
0 10 1 methodToInline Lorg/jruby/ir/IRMethod;
0 10 2 callsiteId J
0 10 4 classToken I
0 10 5 cloneHost Z
2 10 6 newContext Lorg/jruby/ir/interpreter/FullInterpreterContext;
MethodParameters:
Name Flags
methodToInline
callsiteId
classToken
cloneHost
public void inlineMethodJIT(org.jruby.ir.IRMethod, long, int, boolean);
descriptor: (Lorg/jruby/ir/IRMethod;JIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
getfield org.jruby.ir.IRScope.alreadyHasInline:Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
iload 4
iload 5
invokevirtual org.jruby.ir.IRScope.inlineMethodCommon:(Lorg/jruby/ir/IRMethod;JIZ)Lorg/jruby/ir/interpreter/FullInterpreterContext;
astore 6
start local 6 2: aload 6
ifnonnull 5
3: getstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
ifeq 4
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Inline of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " failed: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.jruby.ir.IRScope.inlineFailed:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext
StackMap stack:
return
5: StackMap locals:
StackMap stack:
getstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
ifeq 6
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Inline of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " succeeded."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.linearizeBasicBlocks:()[Lorg/jruby/ir/representations/BasicBlock;
pop
7: aload 0
aload 6
putfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
8: aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getJITCompiler:()Lorg/jruby/compiler/JITCompiler;
aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
getfield org.jruby.ir.IRScope.compilable:Lorg/jruby/compiler/Compilable;
invokevirtual org.jruby.compiler.JITCompiler.getTaskFor:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/compiler/Compilable;)Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
9: return
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
0 10 1 methodToInline Lorg/jruby/ir/IRMethod;
0 10 2 callsiteId J
0 10 4 classToken I
0 10 5 cloneHost Z
2 10 6 newContext Lorg/jruby/ir/interpreter/FullInterpreterContext;
MethodParameters:
Name Flags
methodToInline
callsiteId
classToken
cloneHost
public void inlineMethodCompiled(org.jruby.ir.IRMethod, long, int, boolean);
descriptor: (Lorg/jruby/ir/IRMethod;JIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
getfield org.jruby.ir.IRScope.alreadyHasInline:Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
iload 4
iload 5
invokevirtual org.jruby.ir.IRScope.inlineMethodCommon:(Lorg/jruby/ir/IRMethod;JIZ)Lorg/jruby/ir/interpreter/FullInterpreterContext;
astore 6
start local 6 2: aload 6
ifnonnull 5
3: getstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
ifeq 4
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Inline of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " failed: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.jruby.ir.IRScope.inlineFailed:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext
StackMap stack:
return
5: StackMap locals:
StackMap stack:
getstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
ifeq 6
getstatic org.jruby.ir.IRScope.LOG:Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
ldc "Inline of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " succeeded."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.linearizeBasicBlocks:()[Lorg/jruby/ir/representations/BasicBlock;
pop
7: aload 0
aload 6
putfield org.jruby.ir.IRScope.optimizedInterpreterContext:Lorg/jruby/ir/interpreter/FullInterpreterContext;
8: aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getJITCompiler:()Lorg/jruby/compiler/JITCompiler;
aload 0
getfield org.jruby.ir.IRScope.manager:Lorg/jruby/ir/IRManager;
invokevirtual org.jruby.ir.IRManager.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 0
getfield org.jruby.ir.IRScope.compilable:Lorg/jruby/compiler/Compilable;
invokevirtual org.jruby.compiler.JITCompiler.getTaskFor:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/compiler/Compilable;)Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
9: return
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
0 10 1 methodToInline Lorg/jruby/ir/IRMethod;
0 10 2 callsiteId J
0 10 4 classToken I
0 10 5 cloneHost Z
2 10 6 newContext Lorg/jruby/ir/interpreter/FullInterpreterContext;
MethodParameters:
Name Flags
methodToInline
callsiteId
classToken
cloneHost
public int getNextClosureId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.jruby.ir.IRScope.nextClosureIndex:I
iconst_1
iadd
putfield org.jruby.ir.IRScope.nextClosureIndex:I
1: aload 0
getfield org.jruby.ir.IRScope.nextClosureIndex:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public boolean isModuleBody();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean isNonSingletonClassBody();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean isTopLocalVariableScope();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean isScriptScope();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean needsFrame();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.bindingHasEscaped:()Z
istore 1
start local 1 1: iload 1
ifne 2
aload 0
invokevirtual org.jruby.ir.IRScope.usesEval:()Z
ifne 2
iconst_0
goto 3
StackMap locals: int
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: istore 2
start local 2 4: aload 0
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: org.jruby.ir.IRScope int int top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRFlags
astore 3
start local 3 6: invokestatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$IRFlags:()[I
aload 3
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iaload
tableswitch { // 1 - 24
1: 7
2: 8
3: 7
4: 8
5: 8
6: 8
7: 8
8: 8
9: 8
10: 8
11: 8
12: 8
13: 8
14: 8
15: 7
16: 7
17: 7
18: 7
19: 7
20: 7
21: 7
22: 7
23: 8
24: 7
default: 8
}
7: StackMap locals: org.jruby.ir.IRScope int int org.jruby.ir.IRFlags java.util.Iterator
StackMap stack:
iconst_1
istore 2
end local 3 8: StackMap locals: org.jruby.ir.IRScope int int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/IRScope;
1 10 1 bindingHasEscaped Z
4 10 2 requireFrame Z
6 8 3 flag Lorg/jruby/ir/IRFlags;
public boolean needsOnlyBackref();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: org.jruby.ir.IRScope int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRFlags
astore 2
start local 2 3: invokestatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$IRFlags:()[I
aload 2
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iaload
tableswitch { // 1 - 24
1: 4
2: 6
3: 4
4: 6
5: 6
6: 6
7: 6
8: 6
9: 6
10: 6
11: 6
12: 6
13: 6
14: 6
15: 4
16: 4
17: 4
18: 5
19: 4
20: 4
21: 4
22: 4
23: 6
24: 4
default: 6
}
4: StackMap locals: org.jruby.ir.IRScope int org.jruby.ir.IRFlags java.util.Iterator
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
istore 1
end local 2 6: StackMap locals: org.jruby.ir.IRScope int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ir/IRScope;
1 8 1 backrefSeen Z
3 6 2 flag Lorg/jruby/ir/IRFlags;
public boolean reuseParentScope();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.REUSE_PARENT_DYNSCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean needsBinding();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ir.IRScope.reuseParentScope:()Z
ifne 1
aload 0
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
getstatic org.jruby.ir.IRFlags.DYNSCOPE_ELIMINATED:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRScope;
public boolean inliningAllowed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRScope.alreadyHasInline:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRScope;
public void captureParentRefinements(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.IRScope.maybeUsingRefinements:()Z
ifeq 10
1: aload 0
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 2
start local 2 2: goto 9
3: StackMap locals: org.jruby.ir.IRScope
StackMap stack:
aload 2
getfield org.jruby.ir.IRScope.staticScope:Lorg/jruby/parser/StaticScope;
invokevirtual org.jruby.parser.StaticScope.getOverlayModuleForRead:()Lorg/jruby/RubyModule;
astore 3
start local 3 4: aload 3
ifnull 8
aload 3
invokevirtual org.jruby.RubyModule.getRefinements:()Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 8
5: aload 0
getfield org.jruby.ir.IRScope.staticScope:Lorg/jruby/parser/StaticScope;
aload 1
invokevirtual org.jruby.parser.StaticScope.getOverlayModuleForWrite:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyModule;
astore 4
start local 4 6: aload 4
invokevirtual org.jruby.RubyModule.getRefinementsForWrite:()Ljava/util/Map;
aload 3
invokevirtual org.jruby.RubyModule.getRefinements:()Ljava/util/Map;
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
7: goto 10
end local 4 end local 3 8: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 2
StackMap locals:
StackMap stack:
9: aload 2
ifnonnull 3
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRScope;
0 11 1 context Lorg/jruby/runtime/ThreadContext;
2 10 2 cur Lorg/jruby/ir/IRScope;
4 8 3 overlay Lorg/jruby/RubyModule;
6 8 4 myOverlay Lorg/jruby/RubyModule;
MethodParameters:
Name Flags
context
public void cleanupAfterExecution();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public boolean executesOnce();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRScope;
public void (org.jruby.ir.persistence.IRWriterEncoder);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;)V
flags: (0x0001) ACC_PUBLIC
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;
new java.lang.StringBuilder
dup
ldc "IRScopeType = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jruby.ir.IRScope.getScopeType:()Lorg/jruby/ir/IRScopeType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.getScopeType:()Lorg/jruby/ir/IRScopeType;
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/ir/IRScopeType;)V
2: getstatic org.jruby.RubyInstanceConfig.IR_WRITING_DEBUG:Z
ifeq 3
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Line # = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jruby.ir.IRScope.getLine:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.getLine:()I
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
4: getstatic org.jruby.RubyInstanceConfig.IR_WRITING_DEBUG:Z
ifeq 5
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "# of temp vars = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jruby.ir.IRScope.getTemporaryVariablesCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.getTemporaryVariablesCount:()I
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
6: aload 1
aload 0
invokevirtual org.jruby.ir.IRScope.getNextLabelIndex:()I
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ir/IRScope;
0 8 1 file Lorg/jruby/ir/persistence/IRWriterEncoder;
MethodParameters:
Name Flags
file
static int[] $SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.jruby.ir.operands.TemporaryVariableType.values:()[Lorg/jruby/ir/operands/TemporaryVariableType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.BOOLEAN:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.CLOSURE:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_5
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.CURRENT_MODULE:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
bipush 6
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.CURRENT_SCOPE:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
bipush 7
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.FIXNUM:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_4
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.FLOAT:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_3
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.LOCAL:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_1
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
dup
putstatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
static int[] $SWITCH_TABLE$org$jruby$ir$IRFlags();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$IRFlags:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.jruby.ir.IRFlags.values:()[Lorg/jruby/ir/IRFlags;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.jruby.ir.IRFlags.ACCESS_PARENTS_LOCAL_VARIABLES:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.jruby.ir.IRFlags.BINDING_HAS_ESCAPED:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.jruby.ir.IRFlags.CAN_CAPTURE_CALLERS_BINDING:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_BREAKS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.jruby.ir.IRFlags.CAN_RECEIVE_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
iconst_5
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.jruby.ir.IRFlags.CODE_COVERAGE:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 29
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic org.jruby.ir.IRFlags.DYNSCOPE_ELIMINATED:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 27
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic org.jruby.ir.IRFlags.FLAGS_COMPUTED:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 30
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic org.jruby.ir.IRFlags.HAS_BREAK_INSTRS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 6
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic org.jruby.ir.IRFlags.HAS_END_BLOCKS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 7
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic org.jruby.ir.IRFlags.HAS_EXPLICIT_CALL_PROTOCOL:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 8
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic org.jruby.ir.IRFlags.HAS_LOOPS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 9
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic org.jruby.ir.IRFlags.HAS_NONLOCAL_RETURNS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 10
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic org.jruby.ir.IRFlags.MAYBE_USING_REFINEMENTS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 11
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic org.jruby.ir.IRFlags.RECEIVES_CLOSURE_ARG:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 12
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
getstatic org.jruby.ir.IRFlags.RECEIVES_KEYWORD_ARGS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 13
iastore
48: goto 50
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
49: pop
StackMap locals:
StackMap stack:
50: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_BACKREF:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 18
iastore
51: goto 53
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
52: pop
StackMap locals:
StackMap stack:
53: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_BLOCK:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 20
iastore
54: goto 56
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
55: pop
StackMap locals:
StackMap stack:
56: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_CLASS:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 24
iastore
57: goto 59
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
58: pop
StackMap locals:
StackMap stack:
59: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_DYNSCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 14
iastore
60: goto 62
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
61: pop
StackMap locals:
StackMap stack:
62: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_FILENAME:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 25
iastore
63: goto 65
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
64: pop
StackMap locals:
StackMap stack:
65: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_LASTLINE:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 17
iastore
66: goto 68
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
67: pop
StackMap locals:
StackMap stack:
68: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_LINE:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 23
iastore
69: goto 71
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
70: pop
StackMap locals:
StackMap stack:
71: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_METHODNAME:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 22
iastore
72: goto 74
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
73: pop
StackMap locals:
StackMap stack:
74: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_SCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 26
iastore
75: goto 77
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
76: pop
StackMap locals:
StackMap stack:
77: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_SELF:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 21
iastore
78: goto 80
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
79: pop
StackMap locals:
StackMap stack:
80: aload 0
getstatic org.jruby.ir.IRFlags.REQUIRES_VISIBILITY:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 19
iastore
81: goto 83
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
82: pop
StackMap locals:
StackMap stack:
83: aload 0
getstatic org.jruby.ir.IRFlags.REUSE_PARENT_DYNSCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 28
iastore
84: goto 86
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
85: pop
StackMap locals:
StackMap stack:
86: aload 0
getstatic org.jruby.ir.IRFlags.USES_EVAL:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 15
iastore
87: goto 89
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
88: pop
StackMap locals:
StackMap stack:
89: aload 0
getstatic org.jruby.ir.IRFlags.USES_ZSUPER:Lorg/jruby/ir/IRFlags;
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
bipush 16
iastore
90: goto 92
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
91: pop
StackMap locals:
StackMap stack:
92: aload 0
dup
putstatic org.jruby.ir.IRScope.$SWITCH_TABLE$org$jruby$ir$IRFlags:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
38 39 40 Class java.lang.NoSuchFieldError
41 42 43 Class java.lang.NoSuchFieldError
44 45 46 Class java.lang.NoSuchFieldError
47 48 49 Class java.lang.NoSuchFieldError
50 51 52 Class java.lang.NoSuchFieldError
53 54 55 Class java.lang.NoSuchFieldError
56 57 58 Class java.lang.NoSuchFieldError
59 60 61 Class java.lang.NoSuchFieldError
62 63 64 Class java.lang.NoSuchFieldError
65 66 67 Class java.lang.NoSuchFieldError
68 69 70 Class java.lang.NoSuchFieldError
71 72 73 Class java.lang.NoSuchFieldError
74 75 76 Class java.lang.NoSuchFieldError
77 78 79 Class java.lang.NoSuchFieldError
80 81 82 Class java.lang.NoSuchFieldError
83 84 85 Class java.lang.NoSuchFieldError
86 87 88 Class java.lang.NoSuchFieldError
89 90 91 Class java.lang.NoSuchFieldError
}
SourceFile: "IRScope.java"