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: .line 68
            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 // com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // boolean keys
        start local 3 // boolean values
         0: .line 77
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 74
            aload 0 /* this */
            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: .line 75
            aload 0 /* this */
            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: .line 78
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         4: .line 79
            aload 0 /* this */
            iload 2 /* keys */
            putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
         5: .line 80
            aload 0 /* this */
            iload 3 /* values */
            putfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
         6: .line 81
            return
        end local 3 // boolean values
        end local 2 // boolean keys
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode this
      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: .line 84
            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: .line 88
            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: .line 92
            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 // com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        start local 3 // com.oracle.truffle.js.builtins.helper.ListSizeNode listSize
        start local 4 // com.oracle.truffle.js.builtins.helper.ListGetNode listGet
        start local 5 // com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode hasOnlyShapeProperties
         0: .line 103
            aload 2 /* jsclassProfile */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            astore 6 /* jsclass */
        start local 6 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
         1: .line 104
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.hasFastShapesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
            ifne 2
            aload 5 /* hasOnlyShapeProperties */
            aload 1 /* thisObj */
            aload 6 /* jsclass */
            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: .line 105
            aload 1 /* thisObj */
            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: .line 107
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            istore 7 /* isProxy */
        start local 7 // boolean isProxy
         6: .line 108
            aload 6 /* jsclass */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            astore 8 /* ownKeys */
        start local 8 // java.util.List ownKeys
         7: .line 109
            aload 3 /* listSize */
            aload 8 /* ownKeys */
            invokevirtual com.oracle.truffle.js.builtins.helper.ListSizeNode.execute:(Ljava/util/List;)I
            istore 9 /* ownKeysSize */
        start local 9 // int ownKeysSize
         8: .line 110
            new com.oracle.truffle.js.runtime.util.SimpleArrayList
            dup
            invokespecial com.oracle.truffle.js.runtime.util.SimpleArrayList.<init>:()V
            astore 10 /* properties */
        start local 10 // com.oracle.truffle.js.runtime.util.SimpleArrayList properties
         9: .line 111
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        10: goto 30
        11: .line 112
      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 /* listGet */
            aload 8 /* ownKeys */
            iload 11 /* i */
            invokevirtual com.oracle.truffle.js.builtins.helper.ListGetNode.execute:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 12 /* key */
        start local 12 // java.lang.Object key
        12: .line 113
            aload 12 /* key */
            instanceof java.lang.String
            ifeq 29
        13: .line 114
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 12 /* key */
            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 /* desc */
        start local 13 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        14: .line 115
            aload 13 /* desc */
            ifnull 29
            aload 13 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            ifeq 29
        15: .line 117
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
            ifeq 18
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
            ifne 18
        16: .line 118
            aload 12 /* key */
            astore 14 /* element */
        start local 14 // java.lang.Object element
        17: .line 119
            goto 28
        end local 14 // java.lang.Object element
        18: .line 120
      StackMap locals: java.lang.Object com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
            aload 13 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
            ifne 19
            iload 7 /* isProxy */
            ifeq 20
      StackMap locals:
      StackMap stack:
        19: aload 6 /* jsclass */
            aload 1 /* thisObj */
            aload 12 /* key */
            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 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        21: astore 15 /* value */
        start local 15 // java.lang.Object value
        22: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
            ifne 25
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.values:Z
            ifeq 25
        23: .line 122
            aload 15 /* value */
            astore 14 /* element */
        start local 14 // java.lang.Object element
        24: .line 123
            goto 28
        end local 14 // java.lang.Object element
        25: .line 124
      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 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.keys:Z
            ifeq 26
            aload 0 /* this */
            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: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* key */
            aastore
            dup
            iconst_1
            aload 15 /* value */
            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 /* element */
        end local 15 // java.lang.Object value
        start local 14 // java.lang.Object element
        28: .line 128
      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 /* properties */
            aload 14 /* element */
            aload 0 /* this */
            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 // java.lang.Object element
        end local 13 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 12 // java.lang.Object key
        29: .line 111
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 11 /* i */
            iload 9 /* ownKeysSize */
            if_icmplt 11
        end local 11 // int i
        31: .line 132
            new com.oracle.truffle.js.runtime.util.UnmodifiableArrayList
            dup
            aload 10 /* properties */
            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 // com.oracle.truffle.js.runtime.util.SimpleArrayList properties
        end local 9 // int ownKeysSize
        end local 8 // java.util.List ownKeys
        end local 7 // boolean isProxy
        end local 6 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
        end local 5 // com.oracle.truffle.js.nodes.access.HasOnlyShapePropertiesNode hasOnlyShapeProperties
        end local 4 // com.oracle.truffle.js.builtins.helper.ListGetNode listGet
        end local 3 // com.oracle.truffle.js.builtins.helper.ListSizeNode listSize
        end local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode this
      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 // com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.Object key
         0: .line 137
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
            ifnonnull 3
         1: .line 138
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 139
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            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: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.getOwnPropertyNode:Lcom/oracle/truffle/js/nodes/access/JSGetOwnPropertyNode;
            aload 1 /* thisObj */
            aload 2 /* key */
            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 // java.lang.Object key
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode this
      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