public class org.jruby.ir.operands.Hash extends org.jruby.ir.operands.Operand
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ir.operands.Hash
super_class: org.jruby.ir.operands.Operand
{
public final org.jruby.util.KeyValuePair<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>[] pairs;
descriptor: [Lorg/jruby/util/KeyValuePair;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Signature: [Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
public final boolean isKWArgsHash;
descriptor: Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public void <init>(java.util.List<org.jruby.util.KeyValuePair<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>>, );
descriptor: (Ljava/util/List;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
invokeinterface java.util.List.size:()I
anewarray org.jruby.util.KeyValuePair
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.jruby.util.KeyValuePair[]
iload 2
invokespecial org.jruby.ir.operands.Hash.<init>:([Lorg/jruby/util/KeyValuePair;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/operands/Hash;
0 2 1 pairs Ljava/util/List<Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;>;
0 2 2 isKWArgsHash Z
Signature: (Ljava/util/List<Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;>;Z)V
MethodParameters:
Name Flags
pairs
isKWArgsHash
protected void <init>(org.jruby.util.KeyValuePair<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>[], );
descriptor: ([Lorg/jruby/util/KeyValuePair;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.jruby.ir.operands.Operand.<init>:()V
1: aload 0
aload 1
putfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
2: aload 0
iload 2
putfield org.jruby.ir.operands.Hash.isKWArgsHash:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/operands/Hash;
0 4 1 pairs [Lorg/jruby/util/KeyValuePair;
0 4 2 isKWArgsHash Z
Signature: ([Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;Z)V
MethodParameters:
Name Flags
pairs
isKWArgsHash
public org.jruby.ir.operands.OperandType getOperandType();
descriptor: ()Lorg/jruby/ir/operands/OperandType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.jruby.ir.operands.OperandType.HASH:Lorg/jruby/ir/operands/OperandType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/operands/Hash;
public void <init>(java.util.List<org.jruby.util.KeyValuePair<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokespecial org.jruby.ir.operands.Hash.<init>:(Ljava/util/List;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/operands/Hash;
0 2 1 pairs Ljava/util/List<Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;>;
Signature: (Ljava/util/List<Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;>;)V
MethodParameters:
Name Flags
pairs
public boolean isBlank();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
ifnull 1
aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
arraylength
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/operands/Hash;
public boolean hasKnownValue();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: org.jruby.ir.operands.Hash top int int org.jruby.util.KeyValuePair[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
invokevirtual org.jruby.ir.operands.Operand.hasKnownValue:()Z
ifeq 3
aload 1
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
invokevirtual org.jruby.ir.operands.Operand.hasKnownValue:()Z
ifne 4
3: StackMap locals: org.jruby.ir.operands.Hash org.jruby.util.KeyValuePair int int org.jruby.util.KeyValuePair[]
StackMap stack:
iconst_0
ireturn
end local 1 4: StackMap locals: org.jruby.ir.operands.Hash top int int org.jruby.util.KeyValuePair[]
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 1
6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/operands/Hash;
2 4 1 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
public org.jruby.ir.operands.Operand getSimplifiedOperand(java.util.Map<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>, boolean);
descriptor: (Ljava/util/Map;Z)Lorg/jruby/ir/operands/Operand;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
1: aload 1
iload 2
invokedynamic apply(Ljava/util/Map;Z)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/ir/operands/Hash.lambda$0(Ljava/util/Map;ZLorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair; (6)
(Lorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
org/jruby/ir/operands/Hash.lambda$1(I)[Lorg/jruby/util/KeyValuePair; (6)
(I)[Lorg/jruby/util/KeyValuePair;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast org.jruby.util.KeyValuePair[]
3: astore 3
start local 3 4: new org.jruby.ir.operands.Hash
dup
aload 3
aload 0
getfield org.jruby.ir.operands.Hash.isKWArgsHash:Z
invokespecial org.jruby.ir.operands.Hash.<init>:([Lorg/jruby/util/KeyValuePair;Z)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/operands/Hash;
0 5 1 valueMap Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
0 5 2 force Z
4 5 3 newPairs [Lorg/jruby/util/KeyValuePair;
Signature: (Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;Z)Lorg/jruby/ir/operands/Operand;
MethodParameters:
Name Flags
valueMap
force
public void addUsedVariables(java.util.List<org.jruby.ir.operands.Variable>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.jruby.ir.operands.Hash java.util.List top int int org.jruby.util.KeyValuePair[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 1
invokevirtual org.jruby.ir.operands.Operand.addUsedVariables:(Ljava/util/List;)V
3: aload 2
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 1
invokevirtual org.jruby.ir.operands.Operand.addUsedVariables:(Ljava/util/List;)V
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/operands/Hash;
0 7 1 l Ljava/util/List<Lorg/jruby/ir/operands/Variable;>;
2 4 2 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
Signature: (Ljava/util/List<Lorg/jruby/ir/operands/Variable;>;)V
MethodParameters:
Name Flags
l
public org.jruby.ir.operands.Operand cloneForLVarDepth(int);
descriptor: (I)Lorg/jruby/ir/operands/Operand;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
1: iload 1
invokedynamic apply(I)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/ir/operands/Hash.lambda$2(ILorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair; (6)
(Lorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
org/jruby/ir/operands/Hash.lambda$3(I)[Lorg/jruby/util/KeyValuePair; (6)
(I)[Lorg/jruby/util/KeyValuePair;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast org.jruby.util.KeyValuePair[]
3: astore 2
start local 2 4: new org.jruby.ir.operands.Hash
dup
aload 2
aload 0
getfield org.jruby.ir.operands.Hash.isKWArgsHash:Z
invokespecial org.jruby.ir.operands.Hash.<init>:([Lorg/jruby/util/KeyValuePair;Z)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/operands/Hash;
0 5 1 newDepth I
4 5 2 newPairs [Lorg/jruby/util/KeyValuePair;
MethodParameters:
Name Flags
newDepth
public org.jruby.ir.operands.Operand cloneForInlining(org.jruby.ir.transformations.inlining.CloneInfo);
descriptor: (Lorg/jruby/ir/transformations/inlining/CloneInfo;)Lorg/jruby/ir/operands/Operand;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.operands.Hash.hasKnownValue:()Z
ifeq 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
3: aload 1
invokedynamic apply(Lorg/jruby/ir/transformations/inlining/CloneInfo;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/ir/operands/Hash.lambda$4(Lorg/jruby/ir/transformations/inlining/CloneInfo;Lorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair; (6)
(Lorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
4: invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
org/jruby/ir/operands/Hash.lambda$5(I)[Lorg/jruby/util/KeyValuePair; (6)
(I)[Lorg/jruby/util/KeyValuePair;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast org.jruby.util.KeyValuePair[]
5: astore 2
start local 2 6: new org.jruby.ir.operands.Hash
dup
aload 2
aload 0
getfield org.jruby.ir.operands.Hash.isKWArgsHash:Z
invokespecial org.jruby.ir.operands.Hash.<init>:([Lorg/jruby/util/KeyValuePair;Z)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/operands/Hash;
0 7 1 ii Lorg/jruby/ir/transformations/inlining/CloneInfo;
6 7 2 newPairs [Lorg/jruby/util/KeyValuePair;
MethodParameters:
Name Flags
ii
public java.lang.Object retrieve(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.parser.StaticScope, org.jruby.runtime.DynamicScope, java.lang.Object[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/DynamicScope;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 6
start local 6 1: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
astore 8
start local 8 2: iconst_0
istore 9
start local 9 3: aload 0
getfield org.jruby.ir.operands.Hash.isKWArgsHash:Z
ifeq 7
aload 8
iconst_0
aaload
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
getstatic org.jruby.ir.operands.Symbol.KW_REST_ARG_DUMMY:Lorg/jruby/ir/operands/Symbol;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
4: aload 8
iconst_0
aaload
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 1
aload 2
aload 3
aload 4
aload 5
invokevirtual org.jruby.ir.operands.Operand.retrieve:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/DynamicScope;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.RubyHash
aload 1
invokevirtual org.jruby.RubyHash.dupFast:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyHash;
astore 7
start local 7 5: iinc 9 1
6: goto 8
end local 7 7: StackMap locals: org.jruby.ir.operands.Hash org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.parser.StaticScope org.jruby.runtime.DynamicScope java.lang.Object[] org.jruby.Ruby top org.jruby.util.KeyValuePair[] int
StackMap stack:
aload 6
invokestatic org.jruby.RubyHash.newHash:(Lorg/jruby/Ruby;)Lorg/jruby/RubyHash;
astore 7
start local 7 8: StackMap locals: org.jruby.ir.operands.Hash org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.parser.StaticScope org.jruby.runtime.DynamicScope java.lang.Object[] org.jruby.Ruby org.jruby.RubyHash org.jruby.util.KeyValuePair[] int
StackMap stack:
iload 9
istore 10
start local 10 9: goto 15
10: StackMap locals: int
StackMap stack:
aload 8
iload 10
aaload
astore 11
start local 11 11: aload 11
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 1
aload 2
aload 3
aload 4
aload 5
invokevirtual org.jruby.ir.operands.Operand.retrieve:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/DynamicScope;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
astore 12
start local 12 12: aload 11
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 1
aload 2
aload 3
aload 4
aload 5
invokevirtual org.jruby.ir.operands.Operand.retrieve:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/DynamicScope;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
astore 13
start local 13 13: aload 7
aload 6
aload 12
aload 13
invokevirtual org.jruby.RubyHash.fastASetCheckString:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
end local 13 end local 12 end local 11 14: iinc 10 1
StackMap locals:
StackMap stack:
15: iload 10
aload 8
arraylength
if_icmplt 10
end local 10 16: aload 7
areturn
end local 9 end local 8 end local 7 end local 6 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 17 0 this Lorg/jruby/ir/operands/Hash;
0 17 1 context Lorg/jruby/runtime/ThreadContext;
0 17 2 self Lorg/jruby/runtime/builtin/IRubyObject;
0 17 3 currScope Lorg/jruby/parser/StaticScope;
0 17 4 currDynScope Lorg/jruby/runtime/DynamicScope;
0 17 5 temp [Ljava/lang/Object;
1 17 6 runtime Lorg/jruby/Ruby;
5 7 7 hash Lorg/jruby/RubyHash;
8 17 7 hash Lorg/jruby/RubyHash;
2 17 8 pairs [Lorg/jruby/util/KeyValuePair;
3 17 9 index I
9 16 10 i I
11 14 11 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
12 14 12 key Lorg/jruby/runtime/builtin/IRubyObject;
13 14 13 value Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
self
currScope
currDynScope
temp
public void visit(org.jruby.ir.IRVisitor);
descriptor: (Lorg/jruby/ir/IRVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.jruby.ir.IRVisitor.Hash:(Lorg/jruby/ir/operands/Hash;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/operands/Hash;
0 2 1 visitor Lorg/jruby/ir/IRVisitor;
MethodParameters:
Name Flags
visitor
public void encode(org.jruby.ir.persistence.IRWriterEncoder);
descriptor: (Lorg/jruby/ir/persistence/IRWriterEncoder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.jruby.ir.operands.Operand.encode:(Lorg/jruby/ir/persistence/IRWriterEncoder;)V
1: aload 1
aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
arraylength
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(I)V
2: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.jruby.ir.operands.Hash org.jruby.ir.persistence.IRWriterEncoder top int int org.jruby.util.KeyValuePair[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 1
aload 2
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/ir/operands/Operand;)V
5: aload 1
aload 2
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Lorg/jruby/ir/operands/Operand;)V
end local 2 6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 3
8: aload 1
aload 0
getfield org.jruby.ir.operands.Hash.isKWArgsHash:Z
invokeinterface org.jruby.ir.persistence.IRWriterEncoder.encode:(Z)V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ir/operands/Hash;
0 10 1 e Lorg/jruby/ir/persistence/IRWriterEncoder;
4 6 2 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
MethodParameters:
Name Flags
e
public static org.jruby.ir.operands.Hash decode(org.jruby.ir.persistence.IRReaderDecoder);
descriptor: (Lorg/jruby/ir/persistence/IRReaderDecoder;)Lorg/jruby/ir/operands/Hash;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.ir.persistence.IRReaderDecoder.decodeInt:()I
istore 1
start local 1 1: iload 1
anewarray org.jruby.util.KeyValuePair
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: int org.jruby.util.KeyValuePair[] int
StackMap stack:
aload 2
iload 3
new org.jruby.util.KeyValuePair
dup
aload 0
invokeinterface org.jruby.ir.persistence.IRReaderDecoder.decodeOperand:()Lorg/jruby/ir/operands/Operand;
aload 0
invokeinterface org.jruby.ir.persistence.IRReaderDecoder.decodeOperand:()Lorg/jruby/ir/operands/Operand;
invokespecial org.jruby.util.KeyValuePair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
aastore
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 1
if_icmplt 4
end local 3 7: new org.jruby.ir.operands.Hash
dup
aload 2
aload 0
invokeinterface org.jruby.ir.persistence.IRReaderDecoder.decodeBoolean:()Z
invokespecial org.jruby.ir.operands.Hash.<init>:([Lorg/jruby/util/KeyValuePair;Z)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 d Lorg/jruby/ir/persistence/IRReaderDecoder;
1 8 1 size I
2 8 2 pairs [Lorg/jruby/util/KeyValuePair;
3 7 3 i I
MethodParameters:
Name Flags
d
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "{"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
invokevirtual org.jruby.ir.operands.Hash.isBlank:()Z
ifne 11
3: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
arraylength
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 10
6: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
iload 3
ifle 8
7: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
iload 3
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 2
if_icmplt 6
end local 3 end local 2 11: StackMap locals:
StackMap stack:
aload 1
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/ir/operands/Hash;
1 13 1 builder Ljava/lang/StringBuilder;
4 11 2 pairCount I
5 11 3 i I
public java.util.List<org.jruby.util.KeyValuePair<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>> getPairs();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.operands.Hash.pairs:[Lorg/jruby/util/KeyValuePair;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/operands/Hash;
Signature: ()Ljava/util/List<Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;>;
private static org.jruby.util.KeyValuePair lambda$0(java.util.Map, boolean, org.jruby.util.KeyValuePair);
descriptor: (Ljava/util/Map;ZLorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=6, locals=3, args_size=3
start local 2 0: new org.jruby.util.KeyValuePair
dup
1: aload 2
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 0
iload 1
invokevirtual org.jruby.ir.operands.Operand.getSimplifiedOperand:(Ljava/util/Map;Z)Lorg/jruby/ir/operands/Operand;
2: aload 2
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 0
iload 1
invokevirtual org.jruby.ir.operands.Operand.getSimplifiedOperand:(Ljava/util/Map;Z)Lorg/jruby/ir/operands/Operand;
3: invokespecial org.jruby.util.KeyValuePair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
4: areturn
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 5 2 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
private static org.jruby.util.KeyValuePair[] lambda$1(int);
descriptor: (I)[Lorg/jruby/util/KeyValuePair;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
anewarray org.jruby.util.KeyValuePair
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 n I
private static org.jruby.util.KeyValuePair lambda$2(int, org.jruby.util.KeyValuePair);
descriptor: (ILorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
start local 1 0: new org.jruby.util.KeyValuePair
dup
1: aload 1
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
2: aload 1
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.DepthCloneable
iload 0
invokeinterface org.jruby.ir.operands.DepthCloneable.cloneForDepth:(I)Lorg/jruby/ir/operands/Operand;
3: invokespecial org.jruby.util.KeyValuePair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
4: areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 5 1 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
private static org.jruby.util.KeyValuePair[] lambda$3(int);
descriptor: (I)[Lorg/jruby/util/KeyValuePair;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
anewarray org.jruby.util.KeyValuePair
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 n I
private static org.jruby.util.KeyValuePair lambda$4(org.jruby.ir.transformations.inlining.CloneInfo, org.jruby.util.KeyValuePair);
descriptor: (Lorg/jruby/ir/transformations/inlining/CloneInfo;Lorg/jruby/util/KeyValuePair;)Lorg/jruby/util/KeyValuePair;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
start local 1 0: new org.jruby.util.KeyValuePair
dup
1: aload 1
invokevirtual org.jruby.util.KeyValuePair.getKey:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 0
invokevirtual org.jruby.ir.operands.Operand.cloneForInlining:(Lorg/jruby/ir/transformations/inlining/CloneInfo;)Lorg/jruby/ir/operands/Operand;
2: aload 1
invokevirtual org.jruby.util.KeyValuePair.getValue:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Operand
aload 0
invokevirtual org.jruby.ir.operands.Operand.cloneForInlining:(Lorg/jruby/ir/transformations/inlining/CloneInfo;)Lorg/jruby/ir/operands/Operand;
3: invokespecial org.jruby.util.KeyValuePair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
4: areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 5 1 pair Lorg/jruby/util/KeyValuePair<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
private static org.jruby.util.KeyValuePair[] lambda$5(int);
descriptor: (I)[Lorg/jruby/util/KeyValuePair;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
anewarray org.jruby.util.KeyValuePair
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 n I
}
SourceFile: "Hash.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles