public final class com.oracle.truffle.js.runtime.interop.InteropBoundFunction extends com.oracle.truffle.js.runtime.interop.InteropFunction
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.runtime.interop.InteropBoundFunction
super_class: com.oracle.truffle.js.runtime.interop.InteropFunction
{
final com.oracle.truffle.js.runtime.builtins.JSFunctionObject function;
descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
flags: (0x0010) ACC_FINAL
final java.lang.Object receiver;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
public void <init>(com.oracle.truffle.js.runtime.builtins.JSFunctionObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial com.oracle.truffle.js.runtime.interop.InteropFunction.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;)V
1: aload 0
aload 1
putfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.function:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
2: aload 0
aload 2
putfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
0 4 1 function Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
0 4 2 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
function
receiver
public java.lang.Object getReceiver();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: bipush 31
aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.function:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack: int
1: aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.function:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
invokevirtual java.lang.Object.hashCode:()I
StackMap locals: com.oracle.truffle.js.runtime.interop.InteropBoundFunction
StackMap stack: int int
2: iadd
istore 1
start local 1 3: bipush 31
iload 1
imul
aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
ifnonnull 4
iconst_0
goto 5
StackMap locals: com.oracle.truffle.js.runtime.interop.InteropBoundFunction int
StackMap stack: int
4: aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
invokevirtual java.lang.Object.hashCode:()I
StackMap locals: com.oracle.truffle.js.runtime.interop.InteropBoundFunction int
StackMap stack: int int
5: iadd
istore 1
6: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
3 7 1 result I
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.truffle.js.runtime.interop.InteropBoundFunction
ifeq 6
3: aload 1
checkcast com.oracle.truffle.js.runtime.interop.InteropBoundFunction
astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.function:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
aload 2
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.function:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 5
aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
aload 2
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 5
iconst_1
ireturn
StackMap locals: com.oracle.truffle.js.runtime.interop.InteropBoundFunction
StackMap stack:
5: iconst_0
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
0 7 1 obj Ljava/lang/Object;
4 6 2 other Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
MethodParameters:
Name Flags
obj
boolean isExecutable();
descriptor: ()Z
flags: (0x0000)
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 Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
java.lang.Object execute(java.lang.Object[], com.oracle.truffle.js.lang.JavaScriptLanguage, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.nodes.interop.JSInteropExecuteNode, com.oracle.truffle.js.nodes.interop.ExportValueNode);
descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/nodes/interop/JSInteropExecuteNode;Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
aload 3
invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.interopBoundaryEnter:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
1: aload 4
aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.function:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
aload 0
getfield com.oracle.truffle.js.runtime.interop.InteropBoundFunction.receiver:Ljava/lang/Object;
aload 1
invokevirtual com.oracle.truffle.js.nodes.interop.JSInteropExecuteNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 2: aload 5
aload 6
invokevirtual com.oracle.truffle.js.nodes.interop.ExportValueNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
3: aload 2
aload 3
invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.interopBoundaryExit:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
4: aload 8
areturn
end local 6 5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
6: aload 2
aload 3
invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.interopBoundaryExit:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
7: aload 7
athrow
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 8 0 this Lcom/oracle/truffle/js/runtime/interop/InteropBoundFunction;
0 8 1 arguments [Ljava/lang/Object;
0 8 2 language Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
0 8 3 realm Lcom/oracle/truffle/js/runtime/JSRealm;
0 8 4 callNode Lcom/oracle/truffle/js/nodes/interop/JSInteropExecuteNode;
0 8 5 exportNode Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
2 5 6 result Ljava/lang/Object;
Exception table:
from to target type
1 3 5 any
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.CachedLanguage()
2:
com.oracle.truffle.api.dsl.CachedContext(value = Lcom/oracle/truffle/js/lang/JavaScriptLanguage;)
3:
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
arguments
language
realm
callNode
exportNode
}
SourceFile: "InteropBoundFunction.java"
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;, delegateTo = "function")
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})