abstract class com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
private final java.lang.Object key;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isRequired;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.js.runtime.JSContext context;
descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile nullOrUndefinedBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile fallbackBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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/nodes/access/PropertyGetNode;
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.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.js.nodes.access.PropertyGetNode);
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.nullOrUndefinedBranch: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.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.fallbackBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
3: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getKey:()Ljava/lang/Object;
putfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
4: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.isRequired:()Z
putfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.isRequired:Z
5: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
putfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 7 1 root Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
MethodParameters:
Name Flags
root
public abstract java.lang.Object executeWithJSObject(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyGetNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
thisObj
receiver
defaultValue
root
public static com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode create(com.oracle.truffle.js.nodes.access.PropertyGetNode);
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tGetPropertyFromJSObjectNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
root
protected java.lang.Object doJSObjectCached(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyGetNode, com.oracle.truffle.js.runtime.builtins.JSClass);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 5
aload 1
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getPropertyFromJSObjectIntl:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
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 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 receiver Ljava/lang/Object;
0 1 3 defaultValue Ljava/lang/Object;
0 1 4 root Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
0 1 5 cachedClass Lcom/oracle/truffle/js/runtime/builtins/JSClass;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(limit = "2", guards = {"!isGlobal()", "cachedClass == getJSClass(object)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "getJSClass(object)")
MethodParameters:
Name Flags
object
receiver
defaultValue
root
cachedClass
protected java.lang.Object doJSObjectDirect(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyGetNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
aload 1
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getPropertyFromJSObjectIntl:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 receiver Ljava/lang/Object;
0 1 3 defaultValue Ljava/lang/Object;
0 1 4 root Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doJSObjectCached"}, guards = {"!isGlobal()"})
MethodParameters:
Name Flags
object
receiver
defaultValue
root
protected java.lang.Object doRequired(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyGetNode, com.oracle.truffle.js.nodes.access.JSHasPropertyNode, com.oracle.truffle.js.runtime.util.JSClassProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;Lcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 5
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
invokevirtual com.oracle.truffle.js.nodes.access.JSHasPropertyNode.executeBoolean:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 2
1: aload 0
aload 6
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.profile:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
aload 1
aload 2
aload 3
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getPropertyFromJSObjectIntl:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.fallbackBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
3: aload 0
aload 1
aload 3
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getNoSuchProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
areturn
end local 6 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 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 4 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 receiver Ljava/lang/Object;
0 4 3 defaultValue Ljava/lang/Object;
0 4 4 root Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
0 4 5 hasPropertyNode Lcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;
0 4 6 classProfile Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isGlobal()"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "create()")
5:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
object
receiver
defaultValue
root
hasPropertyNode
classProfile
protected com.oracle.truffle.js.runtime.builtins.JSClass getJSClass(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
object
private java.lang.Object getPropertyFromJSObjectIntl(com.oracle.truffle.js.runtime.builtins.JSClass, com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyGetNode);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.isMethod:()Z
istore 6
start local 6 1: getstatic com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.$assertionsDisabled:Z
ifne 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
instanceof com.oracle.truffle.api.object.HiddenKey
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
aload 1
getstatic com.oracle.truffle.js.runtime.objects.Null.NULL_CLASS:Lcom/oracle/truffle/js/runtime/builtins/JSClass;
if_acmpne 5
3: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.nullOrUndefinedBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
4: aload 5
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
aload 2
iload 6
aload 0
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorCannotGetProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
5: StackMap locals:
StackMap stack:
iload 6
ifeq 6
aload 1
aload 2
aload 3
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
aload 0
invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getMethodHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
goto 7
StackMap locals:
StackMap stack:
6: aload 1
aload 2
aload 3
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
aload 0
invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
7: astore 7
start local 7 8: aload 7
ifnull 10
9: aload 7
areturn
10: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.fallbackBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
11: aload 0
aload 2
aload 4
aload 5
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getNoSuchProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
areturn
end local 7 end local 6 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 12 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 12 1 jsclass Lcom/oracle/truffle/js/runtime/builtins/JSClass;
0 12 2 object Lcom/oracle/truffle/api/object/DynamicObject;
0 12 3 receiver Ljava/lang/Object;
0 12 4 defaultValue Ljava/lang/Object;
0 12 5 root Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
1 12 6 isMethod Z
8 12 7 value Ljava/lang/Object;
MethodParameters:
Name Flags
jsclass
object
receiver
defaultValue
root
protected java.lang.Object getNoSuchProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyGetNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
ifeq 3
1: aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getNoSuchPropertyUnusedAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.isMethod:()Z
ifeq 3
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getNoSuchMethodUnusedAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 3
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.isMethod:()Z
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getNoSuchPropertySlow:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Ljava/lang/Object;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getFallback:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 4 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 defaultValue Ljava/lang/Object;
0 4 3 root Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
MethodParameters:
Name Flags
thisObj
defaultValue
root
private java.lang.Object getNoSuchPropertySlow(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, 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.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
instanceof com.oracle.truffle.js.runtime.Symbol
ifne 10
aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
ifeq 10
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSAdapter.isJSAdapter:(Ljava/lang/Object;)Z
ifne 10
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
ifne 10
1: iload 3
ifeq 7
2: aload 1
ldc "__noSuchMethod__"
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 3: aload 4
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 7
4: aload 4
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
ifeq 6
5: aload 0
aload 1
aload 4
checkcast com.oracle.truffle.api.object.DynamicObject
iconst_0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.callNoSuchHandler:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
areturn
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getFallback:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 4 7: StackMap locals:
StackMap stack:
aload 1
ldc "__noSuchProperty__"
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 8: aload 4
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
ifeq 10
9: aload 0
aload 1
aload 4
checkcast com.oracle.truffle.api.object.DynamicObject
iconst_1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.callNoSuchHandler:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
areturn
end local 4 10: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.getFallback:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 11 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 11 2 defaultValue Ljava/lang/Object;
0 11 3 isMethod Z
3 7 4 function Ljava/lang/Object;
8 10 4 function Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
defaultValue
isMethod
private java.lang.Object callNoSuchHandler(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
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
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.isGlobal:()Z
ifeq 1
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: com.oracle.truffle.api.object.DynamicObject
2: astore 4
start local 4 3: iload 3
ifeq 5
4: aload 2
aload 4
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
5: StackMap locals: java.lang.Object
StackMap stack:
new com.oracle.truffle.js.runtime.JSNoSuchMethodAdapter
dup
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
aload 4
invokespecial com.oracle.truffle.js.runtime.JSNoSuchMethodAdapter.<init>:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 6 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 6 2 function Lcom/oracle/truffle/api/object/DynamicObject;
0 6 3 noSuchProperty Z
3 6 4 thisObject Ljava/lang/Object;
MethodParameters:
Name Flags
thisObj
function
noSuchProperty
protected boolean isGlobal();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.isRequired:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
protected java.lang.Object getFallback(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.isRequired:Z
ifeq 2
1: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode.key:Ljava/lang/Object;
aload 0
invokestatic com.oracle.truffle.js.runtime.Errors.createReferenceErrorNotDefined:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/access/PropertyGetNode$GetPropertyFromJSObjectNode;
0 3 1 defaultValue Ljava/lang/Object;
MethodParameters:
Name Flags
defaultValue
}
SourceFile: "PropertyGetNode.java"
NestHost: com.oracle.truffle.js.nodes.access.PropertyGetNode
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
abstract GetPropertyFromJSObjectNode = com.oracle.truffle.js.nodes.access.PropertyGetNode$GetPropertyFromJSObjectNode of com.oracle.truffle.js.nodes.access.PropertyGetNode