class com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode extends com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignCallNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode
super_class: com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignCallNode
{
protected com.oracle.truffle.api.interop.InteropLibrary interop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0004) ACC_PROTECTED
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode this
start local 1 // int expectedArgumentCount
0: .line 1426
aload 0 /* this */
iload 1 /* expectedArgumentCount */
invokespecial com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignCallNode.<init>:(I)V
1: .line 1427
aload 0 /* this */
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.nodes.function.JSFunctionCallNode$ForeignExecuteNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
2: .line 1428
return
end local 1 // int expectedArgumentCount
end local 0 // com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode$ForeignExecuteNode;
0 3 1 expectedArgumentCount I
MethodParameters:
Name Flags
expectedArgumentCount
public java.lang.Object executeCall(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 // com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode this
start local 1 // java.lang.Object[] arguments
0: .line 1432
aload 0 /* this */
aload 1 /* arguments */
invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode.getForeignFunction:([Ljava/lang/Object;)Ljava/lang/Object;
astore 2 /* function */
start local 2 // java.lang.Object function
1: .line 1433
aload 0 /* this */
aload 1 /* arguments */
invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode.exportArguments:([Ljava/lang/Object;)[Ljava/lang/Object;
astore 3 /* callArguments */
start local 3 // java.lang.Object[] callArguments
2: .line 1435
aload 0 /* this */
aload 0 /* this */
getfield com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2 /* function */
aload 3 /* callArguments */
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode.convertForeignReturn:(Ljava/lang/Object;)Ljava/lang/Object;
3: areturn
4: .line 1436
StackMap locals: com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode java.lang.Object[] java.lang.Object java.lang.Object[]
StackMap stack: com.oracle.truffle.api.interop.InteropException
astore 4 /* e */
start local 4 // com.oracle.truffle.api.interop.InteropException e
5: .line 1437
aload 2 /* function */
aload 4 /* e */
ldc "execute"
aload 0 /* this */
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorInteropException:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropException;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
end local 4 // com.oracle.truffle.api.interop.InteropException e
end local 3 // java.lang.Object[] callArguments
end local 2 // java.lang.Object function
end local 1 // java.lang.Object[] arguments
end local 0 // com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode$ForeignExecuteNode;
0 6 1 arguments [Ljava/lang/Object;
1 6 2 function Ljava/lang/Object;
2 6 3 callArguments [Ljava/lang/Object;
5 6 4 e Lcom/oracle/truffle/api/interop/InteropException;
Exception table:
from to target type
2 3 4 Class com.oracle.truffle.api.interop.UnsupportedTypeException
2 3 4 Class com.oracle.truffle.api.interop.ArityException
2 3 4 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
arguments
}
SourceFile: "JSFunctionCallNode.java"
NestHost: com.oracle.truffle.js.nodes.function.JSFunctionCallNode
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
private abstract ForeignCallNode = com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignCallNode of com.oracle.truffle.js.nodes.function.JSFunctionCallNode
private ForeignExecuteNode = com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignExecuteNode of com.oracle.truffle.js.nodes.function.JSFunctionCallNode