abstract class com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode extends com.oracle.truffle.js.nodes.function.JSBuiltinNode
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode
super_class: com.oracle.truffle.js.nodes.function.JSBuiltinNode
{
private final com.oracle.truffle.api.profiles.BranchProfile objectListBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile needErrorBranches;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.js.nodes.access.WriteElementNode writeNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.interop.ImportValueNode foreignConvertNode;
descriptor: Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.api.interop.InteropLibrary interop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.function.JSBuiltinNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.objectListBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.needErrorBranches:Lcom/oracle/truffle/api/profiles/BranchProfile;
3: aload 0
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
iconst_5
invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/builtins/JavaBuiltins$JavaFromNode;
0 5 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 5 2 builtin Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
MethodParameters:
Name Flags
context
builtin
private void write(java.lang.Object, int, java.lang.Object);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.writeNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aconst_null
aconst_null
aconst_null
aload 0
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
iconst_0
invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.WriteElementNode
putfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.writeNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.writeNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
aload 1
iload 2
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/builtins/JavaBuiltins$JavaFromNode;
0 5 1 target Ljava/lang/Object;
0 5 2 index I
0 5 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
target
index
value
private java.lang.Object foreignConvert(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.foreignConvertNode:Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.interop.ImportValueNode.create:()Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.interop.ImportValueNode
putfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.foreignConvertNode:Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.foreignConvertNode:Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.interop.ImportValueNode.executeWithTarget:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/JavaBuiltins$JavaFromNode;
0 4 1 value Ljava/lang/Object;
MethodParameters:
Name Flags
value
protected com.oracle.truffle.api.object.DynamicObject from(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
ifeq 22
2: aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
lstore 3
start local 3 3: lload 3
lconst_0
lcmp
iflt 4
lload 3
ldc 2147483647
lcmp
iflt 5
4: StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env long
StackMap stack:
invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidArrayLength:()Lcom/oracle/truffle/js/runtime/JSException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
lload 3
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createEmptyChecked:(Lcom/oracle/truffle/js/runtime/JSContext;J)Lcom/oracle/truffle/api/object/DynamicObject;
astore 5
start local 5 6: iconst_0
istore 6
start local 6 7: goto 11
8: StackMap locals: com.oracle.truffle.api.object.DynamicObject int
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
iload 6
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.foreignConvert:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 9: aload 0
aload 5
iload 6
aload 7
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.write:(Ljava/lang/Object;ILjava/lang/Object;)V
end local 7 10: iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
i2l
lload 3
lcmp
iflt 8
end local 6 12: aload 5
13: areturn
end local 5 end local 3 14: StackMap locals: com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode java.lang.Object com.oracle.truffle.api.TruffleLanguage$Env
StackMap stack: com.oracle.truffle.api.interop.InteropException
pop
15: aload 2
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 16: aload 3
instanceof java.util.List
ifeq 22
17: aload 3
checkcast java.util.List
astore 4
start local 4 18: aload 4
invokestatic com.oracle.truffle.js.runtime.Boundaries.listSize:(Ljava/util/List;)I
istore 5
start local 5 19: aload 0
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
iload 5
i2l
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createEmptyChecked:(Lcom/oracle/truffle/js/runtime/JSContext;J)Lcom/oracle/truffle/api/object/DynamicObject;
astore 6
start local 6 20: aload 0
aload 4
iload 5
aload 6
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.fromList:(Ljava/util/List;ILcom/oracle/truffle/api/object/DynamicObject;)V
21: aload 6
areturn
end local 6 end local 5 end local 4 end local 3 22: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.needErrorBranches:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
23: ldc "Cannot convert to JavaScript array."
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/js/builtins/JavaBuiltins$JavaFromNode;
0 24 1 javaArray Ljava/lang/Object;
1 24 2 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
3 14 3 size J
6 14 5 jsArray Lcom/oracle/truffle/api/object/DynamicObject;
7 12 6 i I
9 10 7 element Ljava/lang/Object;
16 22 3 hostObject Ljava/lang/Object;
18 22 4 javaList Ljava/util/List<*>;
19 22 5 len I
20 22 6 jsArrayObj Lcom/oracle/truffle/api/object/DynamicObject;
Exception table:
from to target type
2 13 14 Class com.oracle.truffle.api.interop.UnsupportedMessageException
2 13 14 Class com.oracle.truffle.api.interop.InvalidArrayIndexException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
MethodParameters:
Name Flags
javaArray
private void fromList(java.util.List<?>, int, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Ljava/util/List;ILcom/oracle/truffle/api/object/DynamicObject;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.objectListBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
1: iconst_0
istore 4
start local 4 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
aload 3
iload 4
aload 0
aload 1
iload 4
invokestatic com.oracle.truffle.js.runtime.Boundaries.listGet:(Ljava/util/List;I)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.foreignConvert:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode.write:(Ljava/lang/Object;ILjava/lang/Object;)V
4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 2
if_icmplt 3
end local 4 6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/builtins/JavaBuiltins$JavaFromNode;
0 7 1 javaList Ljava/util/List<*>;
0 7 2 len I
0 7 3 jsArrayObj Lcom/oracle/truffle/api/object/DynamicObject;
2 6 4 i I
Signature: (Ljava/util/List<*>;ILcom/oracle/truffle/api/object/DynamicObject;)V
MethodParameters:
Name Flags
javaList
len
jsArrayObj
}
SourceFile: "JavaBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.JavaBuiltins
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
abstract JavaFromNode = com.oracle.truffle.js.builtins.JavaBuiltins$JavaFromNode of com.oracle.truffle.js.builtins.JavaBuiltins