public abstract class com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
private final boolean keys;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean values;
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 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 final com.oracle.truffle.api.profiles.ConditionProfile hasFastShapesProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile growProfile;
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/EnumerableOwnPropertyNamesNode;
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.EnumerableOwnPropertyNamesNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.hasFastShapesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
3: aload 0
aload 1
putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
4: aload 0
iload 2
putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
5: aload 0
iload 3
putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
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/nodes/access/EnumerableOwnPropertyNamesNode;
0 7 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 7 2 keys Z
0 7 3 values Z
MethodParameters:
Name Flags
context
keys
values
public static com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode createKeys(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
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\tEnumerableOwnPropertyNamesNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
context
public static com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode createValues(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
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\tEnumerableOwnPropertyNamesNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
context
public static com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode createKeysValues(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
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\tEnumerableOwnPropertyNamesNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
context
public abstract com.oracle.truffle.js.runtime.util.UnmodifiableArrayList<? extends java.lang.Object> execute(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList<+Ljava/lang/Object;>;
MethodParameters:
Name Flags
obj
protected com.oracle.truffle.js.runtime.util.UnmodifiableArrayList<? extends java.lang.Object> enumerableOwnPropertyNames(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.util.JSClassProfile, com.oracle.truffle.js.builtins.helper.ListSizeNode, com.oracle.truffle.js.builtins.helper.ListGetNode, com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/js/builtins/helper/ListSizeNode;Lcom/oracle/truffle/js/builtins/helper/ListGetNode;Lcom/oracle/truffle/js/nodes/access/HasOnlyShapePropertiesNode;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=16, 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 1
invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
astore 6
start local 6 1: aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.hasFastShapesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
ifeq 2
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
ifne 2
aload 5
aload 1
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Z
ifeq 2
iconst_1
goto 3
StackMap locals: com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.JSClassProfile com.oracle.truffle.js.builtins.helper.ListSizeNode com.oracle.truffle.js.builtins.helper.ListGetNode com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode com.oracle.truffle.js.runtime.builtins.JSClass
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
2: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.JSClassProfile com.oracle.truffle.js.builtins.helper.ListSizeNode com.oracle.truffle.js.builtins.helper.ListGetNode com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode com.oracle.truffle.js.runtime.builtins.JSClass
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
3: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 5
4: aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getEnumerablePropertyNames:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
istore 7
start local 7 6: aload 6
aload 1
invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
astore 8
start local 8 7: aload 3
aload 8
invokevirtual com.oracle.truffle.js.builtins.helper.ListSizeNode.execute:(Ljava/util/List;)I
istore 9
start local 9 8: new com.oracle.truffle.js.runtime.util.SimpleArrayList
dup
invokespecial com.oracle.truffle.js.runtime.util.SimpleArrayList.<init>:()V
astore 10
start local 10 9: iconst_0
istore 11
start local 11 10: goto 30
11: StackMap locals: com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.JSClassProfile com.oracle.truffle.js.builtins.helper.ListSizeNode com.oracle.truffle.js.builtins.helper.ListGetNode com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode com.oracle.truffle.js.runtime.builtins.JSClass int java.util.List int com.oracle.truffle.js.runtime.util.SimpleArrayList int
StackMap stack:
aload 4
aload 8
iload 11
invokevirtual com.oracle.truffle.js.builtins.helper.ListGetNode.execute:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 12
start local 12 12: aload 12
instanceof java.lang.String
ifeq 29
13: aload 0
aload 1
aload 12
invokevirtual com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 13
start local 13 14: aload 13
ifnull 29
aload 13
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
ifeq 29
15: aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
ifeq 18
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
ifne 18
16: aload 12
astore 14
start local 14 17: goto 28
end local 14 18: StackMap locals: java.lang.Object com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 13
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
ifne 19
iload 7
ifeq 20
StackMap locals:
StackMap stack:
19: aload 6
aload 1
aload 12
invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
goto 21
StackMap locals:
StackMap stack:
20: aload 13
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
21: astore 15
start local 15 22: aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
ifne 25
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
ifeq 25
23: aload 15
astore 14
start local 14 24: goto 28
end local 14 25: StackMap locals: com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.JSClassProfile com.oracle.truffle.js.builtins.helper.ListSizeNode com.oracle.truffle.js.builtins.helper.ListGetNode com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode com.oracle.truffle.js.runtime.builtins.JSClass int java.util.List int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.Object com.oracle.truffle.js.runtime.objects.PropertyDescriptor top java.lang.Object
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.$assertionsDisabled:Z
ifne 27
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
ifeq 26
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
ifne 27
StackMap locals:
StackMap stack:
26: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 12
aastore
dup
iconst_1
aload 15
aastore
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstant:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 14
end local 15 start local 14 28: StackMap locals: com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.JSClassProfile com.oracle.truffle.js.builtins.helper.ListSizeNode com.oracle.truffle.js.builtins.helper.ListGetNode com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode com.oracle.truffle.js.runtime.builtins.JSClass int java.util.List int com.oracle.truffle.js.runtime.util.SimpleArrayList int java.lang.Object com.oracle.truffle.js.runtime.objects.PropertyDescriptor java.lang.Object
StackMap stack:
aload 10
aload 14
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
end local 14 end local 13 end local 12 29: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
30: iload 11
iload 9
if_icmplt 11
end local 11 31: new com.oracle.truffle.js.runtime.util.UnmodifiableArrayList
dup
aload 10
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.toArray:()[Ljava/lang/Object;
invokespecial com.oracle.truffle.js.runtime.util.UnmodifiableArrayList.<init>:([Ljava/lang/Object;)V
areturn
end local 10 end local 9 end local 8 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 32 0 this Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
0 32 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 32 2 jsclassProfile Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
0 32 3 listSize Lcom/oracle/truffle/js/builtins/helper/ListSizeNode;
0 32 4 listGet Lcom/oracle/truffle/js/builtins/helper/ListGetNode;
0 32 5 hasOnlyShapeProperties Lcom/oracle/truffle/js/nodes/access/HasOnlyShapePropertiesNode;
1 32 6 jsclass Lcom/oracle/truffle/js/runtime/builtins/JSClass;
6 32 7 isProxy Z
7 32 8 ownKeys Ljava/util/List<Ljava/lang/Object;>;
8 32 9 ownKeysSize I
9 32 10 properties Lcom/oracle/truffle/js/runtime/util/SimpleArrayList<Ljava/lang/Object;>;
10 31 11 i I
12 29 12 key Ljava/lang/Object;
14 29 13 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
17 18 14 element Ljava/lang/Object;
24 25 14 element Ljava/lang/Object;
28 29 14 element Ljava/lang/Object;
22 28 15 value Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/js/builtins/helper/ListSizeNode;Lcom/oracle/truffle/js/builtins/helper/ListGetNode;Lcom/oracle/truffle/js/nodes/access/HasOnlyShapePropertiesNode;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList<+Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached()
2:
com.oracle.truffle.api.dsl.Cached()
3:
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
thisObj
jsclassProfile
listSize
listGet
hasOnlyShapeProperties
protected com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
iconst_1
iconst_0
iconst_0
iconst_0
invokestatic com.oracle.truffle.js.nodes.access.JSGetOwnPropertyNode.create:(ZZZZZ)Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
invokevirtual com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.JSGetOwnPropertyNode
putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
aload 1
aload 2
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;
areturn
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/EnumerableOwnPropertyNamesNode;
0 4 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 key Ljava/lang/Object;
MethodParameters:
Name Flags
thisObj
key
}
SourceFile: "EnumerableOwnPropertyNamesNode.java"
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node