public abstract class com.oracle.truffle.js.nodes.cast.JSToLengthNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.cast.JSToLengthNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
public static com.oracle.truffle.js.nodes.cast.JSToLengthNode create();
descriptor: ()Lcom/oracle/truffle/js/nodes/cast/JSToLengthNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tJSToLengthNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
public abstract long executeLong(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
value
protected static long doInt(int, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (ILcom/oracle/truffle/api/profiles/BranchProfile;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
ifge 3
1: aload 1
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: lconst_0
lreturn
3: StackMap locals:
StackMap stack:
iload 0
i2l
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value I
0 4 1 negativeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "negativeBranch")
MethodParameters:
Name Flags
value
negativeBranch
protected static long doSafeInteger(com.oracle.truffle.js.runtime.SafeInteger, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/js/runtime/SafeInteger;Lcom/oracle/truffle/api/profiles/BranchProfile;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.SafeInteger.longValue:()J
lstore 2
start local 2 1: lload 2
lconst_0
lcmp
ifge 4
2: aload 1
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
3: lconst_0
lreturn
4: StackMap locals: long
StackMap stack:
lload 2
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 value Lcom/oracle/truffle/js/runtime/SafeInteger;
0 5 1 negativeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
1 5 2 longValue J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "negativeBranch")
MethodParameters:
Name Flags
value
negativeBranch
protected static long doDouble(double, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (DLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 2 start local 3 0: dload 0
d2l
aload 2
aload 3
invokestatic com.oracle.truffle.js.nodes.cast.JSToLengthNode.doLong:(JLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)J
lreturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 value D
0 1 2 negativeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 1 3 tooLargeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "negativeBranch")
2:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "tooLargeBranch")
MethodParameters:
Name Flags
value
negativeBranch
tooLargeBranch
protected static long doUndefined(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: lconst_0
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 value Lcom/oracle/truffle/api/object/DynamicObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isUndefined(value)"})
MethodParameters:
Name Flags
value
protected static long doObject(java.lang.Object, com.oracle.truffle.js.nodes.cast.JSToNumberNode, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)J
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 0
invokevirtual com.oracle.truffle.js.nodes.cast.JSToNumberNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Number
astore 4
start local 4 1: aload 4
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toInteger:(Ljava/lang/Number;)J
aload 2
aload 3
invokestatic com.oracle.truffle.js.nodes.cast.JSToLengthNode.doLong:(JLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)J
lreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 value Ljava/lang/Object;
0 2 1 toNumberNode Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;
0 2 2 negativeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 2 3 tooLargeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
1 2 4 result Ljava/lang/Number;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached(value = "create()")
2:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "negativeBranch")
3:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "tooLargeBranch")
MethodParameters:
Name Flags
value
toNumberNode
negativeBranch
tooLargeBranch
private static long doLong(long, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (JLcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 2 start local 3 0: lload 0
lconst_0
lcmp
ifge 3
1: aload 2
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: lconst_0
lreturn
3: StackMap locals:
StackMap stack:
lload 0
getstatic com.oracle.truffle.js.runtime.JSRuntime.MAX_SAFE_INTEGER_LONG:J
lcmp
ifle 6
4: aload 3
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
5: getstatic com.oracle.truffle.js.runtime.JSRuntime.MAX_SAFE_INTEGER_LONG:J
lreturn
6: StackMap locals:
StackMap stack:
lload 0
lreturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 value J
0 7 2 negativeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 7 3 tooLargeBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
MethodParameters:
Name Flags
value
negativeBranch
tooLargeBranch final
}
SourceFile: "JSToLengthNode.java"
InnerClasses:
public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached