public abstract class com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode extends com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode
super_class: com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation
{
private com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode toPropertyKeyNode;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToPropertyKeyNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.JSGetOwnPropertyNode getOwnPropertyNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.FromPropertyDescriptorNode fromPropertyDescriptorNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/FromPropertyDescriptorNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public 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: (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 2
invokespecial com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
1: aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToPropertyKeyNode;
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.toPropertyKeyNode:Lcom/oracle/truffle/js/nodes/cast/JSToPropertyKeyNode;
2: aload 0
invokestatic com.oracle.truffle.js.nodes.access.JSGetOwnPropertyNode.create:()Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
3: aload 0
invokestatic com.oracle.truffle.js.nodes.access.FromPropertyDescriptorNode.create:()Lcom/oracle/truffle/js/nodes/access/FromPropertyDescriptorNode;
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.fromPropertyDescriptorNode:Lcom/oracle/truffle/js/nodes/access/FromPropertyDescriptorNode;
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/ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode;
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
protected com.oracle.truffle.api.object.DynamicObject getJSObject(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.toPropertyKeyNode:Lcom/oracle/truffle/js/nodes/cast/JSToPropertyKeyNode;
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
aload 1
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.JSGetOwnPropertyNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 4
start local 4 2: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.fromPropertyDescriptorNode:Lcom/oracle/truffle/js/nodes/access/FromPropertyDescriptorNode;
aload 4
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.nodes.access.FromPropertyDescriptorNode.execute:(Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode;
0 3 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 property Ljava/lang/Object;
1 3 3 propertyKey Ljava/lang/Object;
2 3 4 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(thisObj)"})
MethodParameters:
Name Flags
thisObj
property
protected com.oracle.truffle.api.object.DynamicObject getForeignObject(java.lang.Object, java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.js.nodes.interop.ImportValueNode);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.toPropertyKeyNode:Lcom/oracle/truffle/js/nodes/cast/JSToPropertyKeyNode;
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 1: aload 5
instanceof java.lang.String
ifeq 24
2: aload 5
checkcast java.lang.String
astore 6
start local 6 3: aload 3
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 13
4: aload 3
aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 13
aload 3
aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 13
5: aload 4
aload 3
aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.nodes.interop.ImportValueNode.executeWithTarget:(Ljava/lang/Object;)Ljava/lang/Object;
6: aload 3
aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberInternal:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 7
iconst_0
goto 8
StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode java.lang.Object java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.js.nodes.interop.ImportValueNode java.lang.Object java.lang.String
StackMap stack: java.lang.Object
7: iconst_1
8: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode java.lang.Object java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.js.nodes.interop.ImportValueNode java.lang.Object java.lang.String
StackMap stack: java.lang.Object int
aload 3
aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
9: aload 3
aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberRemovable:(Ljava/lang/Object;Ljava/lang/String;)Z
10: invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 7
start local 7 11: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.fromPropertyDescriptorNode:Lcom/oracle/truffle/js/nodes/access/FromPropertyDescriptorNode;
aload 7
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.nodes.access.FromPropertyDescriptorNode.execute:(Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
12: areturn
end local 7 13: StackMap locals:
StackMap stack:
aload 6
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyNameToArrayIndex:(Ljava/lang/String;)J
lstore 7
start local 7 14: lload 7
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(J)Z
ifeq 24
aload 3
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ifeq 24
15: aload 3
aload 1
lload 7
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementExisting:(Ljava/lang/Object;J)Z
ifeq 24
aload 3
aload 1
lload 7
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementReadable:(Ljava/lang/Object;J)Z
ifeq 24
16: aload 4
aload 3
aload 1
lload 7
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.nodes.interop.ImportValueNode.executeWithTarget:(Ljava/lang/Object;)Ljava/lang/Object;
17: iconst_1
18: aload 3
aload 1
lload 7
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementWritable:(Ljava/lang/Object;J)Z
19: aload 3
aload 1
lload 7
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isArrayElementRemovable:(Ljava/lang/Object;J)Z
20: invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 9
start local 9 21: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.fromPropertyDescriptorNode:Lcom/oracle/truffle/js/nodes/access/FromPropertyDescriptorNode;
aload 9
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.nodes.access.FromPropertyDescriptorNode.execute:(Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
22: areturn
end local 9 end local 7 end local 6 23: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode java.lang.Object java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.js.nodes.interop.ImportValueNode java.lang.Object
StackMap stack: com.oracle.truffle.api.interop.InteropException
pop
24: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
areturn
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 25 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode;
0 25 1 thisObj Ljava/lang/Object;
0 25 2 property Ljava/lang/Object;
0 25 3 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 25 4 toJSType Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
1 25 5 propertyKey Ljava/lang/Object;
3 23 6 member Ljava/lang/String;
11 13 7 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
14 23 7 index J
21 23 9 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
Exception table:
from to target type
2 12 23 Class com.oracle.truffle.api.interop.InteropException
13 22 23 Class com.oracle.truffle.api.interop.InteropException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isForeignObject(thisObj)"}, limit = "InteropLibraryLimit")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.library.CachedLibrary(value = "thisObj")
3:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
thisObj
property
interop
toJSType
protected com.oracle.truffle.api.object.DynamicObject getDefault(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.toObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: getstatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.$assertionsDisabled:Z
ifne 2
aload 3
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 3
checkcast com.oracle.truffle.api.object.DynamicObject
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode.getJSObject:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode;
0 3 1 thisObj Ljava/lang/Object;
0 3 2 property Ljava/lang/Object;
1 3 3 object Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isJSObject(thisObj)", "!isForeignObject(thisObj)"})
MethodParameters:
Name Flags
thisObj
property
}
SourceFile: "ObjectFunctionBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract ObjectGetOwnPropertyDescriptorNode = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectGetOwnPropertyDescriptorNode of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
public abstract ObjectOperation = com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation of com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})