public final class com.oracle.truffle.js.nodes.function.ClassDefinitionNode extends com.oracle.truffle.js.nodes.JavaScriptNode implements com.oracle.truffle.js.nodes.function.FunctionNameHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.function.ClassDefinitionNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptNode
{
  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.JavaScriptNode constructorFunctionNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.JavaScriptNode classHeritageNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private final com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] memberNodes;
    descriptor: [Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Children()

  private com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBindingNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.PropertyGetNode getPrototypeNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.function.CreateMethodPropertyNode setConstructorNode;
    descriptor: Lcom/oracle/truffle/js/nodes/function/CreateMethodPropertyNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.CreateObjectNode$CreateObjectWithPrototypeNode createPrototypeNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/CreateObjectNode$CreateObjectWithPrototypeNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.function.DefineMethodNode defineConstructorMethodNode;
    descriptor: Lcom/oracle/truffle/js/nodes/function/DefineMethodNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.PropertySetNode setFieldsNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode staticFieldsNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/InitializeInstanceElementsNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.PropertySetNode setPrivateBrandNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.function.SetFunctionNameNode setFunctionName;
    descriptor: Lcom/oracle/truffle/js/nodes/function/SetFunctionNameNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private final boolean hasName;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int instanceFieldCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int staticFieldCount;
    descriptor: I
    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 69
            ldc Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            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.function.ClassDefinitionNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[], com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode, boolean, int, int, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;ZIIZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=10
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode constructorFunctionNode
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode classHeritageNode
        start local 4 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] memberNodes
        start local 5 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBindingNode
        start local 6 // boolean hasName
        start local 7 // int instanceFieldCount
        start local 8 // int staticFieldCount
        start local 9 // boolean hasPrivateInstanceMethods
         0: .line 90
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.<init>:()V
         1: .line 92
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 93
            aload 0 /* this */
            aload 2 /* constructorFunctionNode */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.constructorFunctionNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         3: .line 94
            aload 0 /* this */
            aload 3 /* classHeritageNode */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.classHeritageNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         4: .line 95
            aload 0 /* this */
            aload 4 /* memberNodes */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.memberNodes:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
         5: .line 96
            aload 0 /* this */
            iload 6 /* hasName */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.hasName:Z
         6: .line 97
            aload 0 /* this */
            iload 7 /* instanceFieldCount */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.instanceFieldCount:I
         7: .line 98
            aload 0 /* this */
            iload 8 /* staticFieldCount */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldCount:I
         8: .line 100
            aload 0 /* this */
            aload 5 /* writeClassBindingNode */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.writeClassBindingNode:Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
         9: .line 101
            aload 0 /* this */
            ldc "prototype"
            iconst_0
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
        10: .line 102
            aload 0 /* this */
            aload 1 /* context */
            ldc "constructor"
            invokestatic com.oracle.truffle.js.nodes.function.CreateMethodPropertyNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/function/CreateMethodPropertyNode;
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setConstructorNode:Lcom/oracle/truffle/js/nodes/function/CreateMethodPropertyNode;
        11: .line 103
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.access.CreateObjectNode.createOrdinaryWithPrototype:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/CreateObjectNode$CreateObjectWithPrototypeNode;
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.createPrototypeNode:Lcom/oracle/truffle/js/nodes/access/CreateObjectNode$CreateObjectWithPrototypeNode;
        12: .line 104
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* constructorFunctionNode */
            invokestatic com.oracle.truffle.js.nodes.function.DefineMethodNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;)Lcom/oracle/truffle/js/nodes/function/DefineMethodNode;
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.defineConstructorMethodNode:Lcom/oracle/truffle/js/nodes/function/DefineMethodNode;
        13: .line 105
            aload 0 /* this */
            iload 7 /* instanceFieldCount */
            ifeq 14
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_FIELDS_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.access.PropertySetNode.createSetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            goto 15
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode int int int int
      StackMap stack: com.oracle.truffle.js.nodes.function.ClassDefinitionNode
        14: aconst_null
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode int int int int
      StackMap stack: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.nodes.access.PropertySetNode
        15: putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setFieldsNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
        16: .line 106
            aload 0 /* this */
            iload 9 /* hasPrivateInstanceMethods */
            ifeq 17
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.PRIVATE_BRAND_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.access.PropertySetNode.createSetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            goto 18
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.function.ClassDefinitionNode
        17: aconst_null
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode int int int int
      StackMap stack: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.nodes.access.PropertySetNode
        18: putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setPrivateBrandNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
        19: .line 107
            aload 0 /* this */
            iload 6 /* hasName */
            ifeq 20
            aconst_null
            goto 21
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.function.ClassDefinitionNode
        20: invokestatic com.oracle.truffle.js.nodes.function.SetFunctionNameNode.create:()Lcom/oracle/truffle/js/nodes/function/SetFunctionNameNode;
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode int int int int
      StackMap stack: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.js.nodes.function.SetFunctionNameNode
        21: putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setFunctionName:Lcom/oracle/truffle/js/nodes/function/SetFunctionNameNode;
        22: .line 108
            return
        end local 9 // boolean hasPrivateInstanceMethods
        end local 8 // int staticFieldCount
        end local 7 // int instanceFieldCount
        end local 6 // boolean hasName
        end local 5 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBindingNode
        end local 4 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] memberNodes
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode classHeritageNode
        end local 2 // com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode constructorFunctionNode
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   23     0                       this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0   23     1                    context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   23     2    constructorFunctionNode  Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
            0   23     3          classHeritageNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   23     4                memberNodes  [Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            0   23     5      writeClassBindingNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            0   23     6                    hasName  Z
            0   23     7         instanceFieldCount  I
            0   23     8           staticFieldCount  I
            0   23     9  hasPrivateInstanceMethods  Z
    MethodParameters:
                           Name  Flags
      context                    
      constructorFunctionNode    
      classHeritageNode          
      memberNodes                
      writeClassBindingNode      
      hasName                    
      instanceFieldCount         
      staticFieldCount           
      hasPrivateInstanceMethods  

  public static com.oracle.truffle.js.nodes.function.ClassDefinitionNode create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[], com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode, boolean, int, int, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;ZIIZ)Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=9, args_size=9
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode constructorFunction
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode classHeritage
        start local 3 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] members
        start local 4 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBinding
        start local 5 // boolean hasName
        start local 6 // int instanceFieldCount
        start local 7 // int staticFieldCount
        start local 8 // boolean hasPrivateInstanceMethods
         0: .line 112
            new com.oracle.truffle.js.nodes.function.ClassDefinitionNode
            dup
            aload 0 /* context */
            aload 1 /* constructorFunction */
            aload 2 /* classHeritage */
            aload 3 /* members */
            aload 4 /* writeClassBinding */
            iload 5 /* hasName */
            iload 6 /* instanceFieldCount */
            iload 7 /* staticFieldCount */
            iload 8 /* hasPrivateInstanceMethods */
            invokespecial com.oracle.truffle.js.nodes.function.ClassDefinitionNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;ZIIZ)V
            areturn
        end local 8 // boolean hasPrivateInstanceMethods
        end local 7 // int staticFieldCount
        end local 6 // int instanceFieldCount
        end local 5 // boolean hasName
        end local 4 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBinding
        end local 3 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] members
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode classHeritage
        end local 1 // com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode constructorFunction
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    1     0                    context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1        constructorFunction  Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
            0    1     2              classHeritage  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     3                    members  [Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            0    1     4          writeClassBinding  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            0    1     5                    hasName  Z
            0    1     6         instanceFieldCount  I
            0    1     7           staticFieldCount  I
            0    1     8  hasPrivateInstanceMethods  Z
    MethodParameters:
                           Name  Flags
      context                    
      constructorFunction        
      classHeritage              
      members                    
      writeClassBinding          
      hasName                    
      instanceFieldCount         
      staticFieldCount           
      hasPrivateInstanceMethods  

  public com.oracle.truffle.api.object.DynamicObject execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 117
            aload 0 /* this */
            aload 1 /* frame */
            aconst_null
            invokevirtual com.oracle.truffle.js.nodes.function.ClassDefinitionNode.executeWithClassName:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0    1     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    MethodParameters:
       Name  Flags
      frame  

  public com.oracle.truffle.api.object.DynamicObject executeWithClassName(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object className
         0: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 3 /* realm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm realm
         1: .line 122
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getObjectPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* protoParent */
        start local 4 // java.lang.Object protoParent
         2: .line 123
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 5 /* constructorParent */
        start local 5 // java.lang.Object constructorParent
         3: .line 124
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.classHeritageNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 16
         4: .line 125
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.classHeritageNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 6 /* superclass */
        start local 6 // java.lang.Object superclass
         5: .line 126
            aload 6 /* superclass */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 8
         6: .line 127
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            astore 4 /* protoParent */
         7: .line 128
            goto 16
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object com.oracle.truffle.js.runtime.JSRealm java.lang.Object java.lang.Object java.lang.Object
      StackMap stack:
         8: aload 6 /* superclass */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isConstructor:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 130
            ldc "not a constructor"
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        10: .line 131
      StackMap locals:
      StackMap stack:
            aload 6 /* superclass */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isGenerator:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 133
            ldc "class cannot extend a generator function"
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        12: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 6 /* superclass */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* protoParent */
        13: .line 136
            aload 4 /* protoParent */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 15
            aload 4 /* protoParent */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 137
            ldc "protoParent is neither Object nor Null"
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        15: .line 139
      StackMap locals:
      StackMap stack:
            aload 6 /* superclass */
            astore 5 /* constructorParent */
        end local 6 // java.lang.Object superclass
        16: .line 144
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.function.ClassDefinitionNode.$assertionsDisabled:Z
            ifne 17
            aload 4 /* protoParent */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 17
            aload 4 /* protoParent */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.createPrototypeNode:Lcom/oracle/truffle/js/nodes/access/CreateObjectNode$CreateObjectWithPrototypeNode;
            aload 1 /* frame */
            aload 4 /* protoParent */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.js.nodes.access.CreateObjectNode$CreateObjectWithPrototypeNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* proto */
        start local 6 // com.oracle.truffle.api.object.DynamicObject proto
        18: .line 151
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.defineConstructorMethodNode:Lcom/oracle/truffle/js/nodes/function/DefineMethodNode;
            aload 1 /* frame */
            aload 6 /* proto */
            aload 5 /* constructorParent */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.js.nodes.function.DefineMethodNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* constructor */
        start local 7 // com.oracle.truffle.api.object.DynamicObject constructor
        19: .line 154
            aload 7 /* constructor */
            aload 6 /* proto */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.setClassPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
        20: .line 157
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setFunctionName:Lcom/oracle/truffle/js/nodes/function/SetFunctionNameNode;
            ifnull 22
            aload 2 /* className */
            ifnull 22
        21: .line 158
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setFunctionName:Lcom/oracle/truffle/js/nodes/function/SetFunctionNameNode;
            aload 7 /* constructor */
            aload 2 /* className */
            invokevirtual com.oracle.truffle.js.nodes.function.SetFunctionNameNode.execute:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 162
      StackMap locals: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setConstructorNode:Lcom/oracle/truffle/js/nodes/function/CreateMethodPropertyNode;
            aload 6 /* proto */
            aload 7 /* constructor */
            invokevirtual com.oracle.truffle.js.nodes.function.CreateMethodPropertyNode.executeVoid:(Ljava/lang/Object;Ljava/lang/Object;)V
        23: .line 164
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.instanceFieldCount:I
            ifne 24
            aconst_null
            goto 25
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.instanceFieldCount:I
            anewarray java.lang.Object[]
      StackMap locals:
      StackMap stack: java.lang.Object[][]
        25: astore 8 /* instanceFields */
        start local 8 // java.lang.Object[][] instanceFields
        26: .line 165
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldCount:I
            ifne 27
            aconst_null
            goto 28
      StackMap locals: java.lang.Object[][]
      StackMap stack:
        27: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldCount:I
            anewarray java.lang.Object[]
      StackMap locals:
      StackMap stack: java.lang.Object[][]
        28: astore 9 /* staticFields */
        start local 9 // java.lang.Object[][] staticFields
        29: .line 167
            aload 0 /* this */
            aload 1 /* frame */
            aload 6 /* proto */
            aload 7 /* constructor */
            aload 8 /* instanceFields */
            aload 9 /* staticFields */
            invokevirtual com.oracle.truffle.js.nodes.function.ClassDefinitionNode.initializeMembers:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;[[Ljava/lang/Object;[[Ljava/lang/Object;)V
        30: .line 169
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.writeClassBindingNode:Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            ifnull 32
        31: .line 170
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.writeClassBindingNode:Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            aload 1 /* frame */
            aload 7 /* constructor */
            invokevirtual com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode.executeWrite:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 173
      StackMap locals: java.lang.Object[][]
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setFieldsNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            ifnull 34
        33: .line 174
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setFieldsNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            aload 7 /* constructor */
            aload 8 /* instanceFields */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertySetNode.setValue:(Ljava/lang/Object;Ljava/lang/Object;)V
        34: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setPrivateBrandNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            ifnull 37
        35: .line 179
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "Brand"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            astore 10 /* privateBrand */
        start local 10 // com.oracle.truffle.api.object.HiddenKey privateBrand
        36: .line 180
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setPrivateBrandNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            aload 7 /* constructor */
            aload 10 /* privateBrand */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertySetNode.setValue:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 10 // com.oracle.truffle.api.object.HiddenKey privateBrand
        37: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldCount:I
            ifeq 43
        38: .line 184
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldsNode:Lcom/oracle/truffle/js/nodes/access/InitializeInstanceElementsNode;
            astore 10 /* defineStaticFields */
        start local 10 // com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode defineStaticFields
        39: .line 185
            aload 10 /* defineStaticFields */
            ifnonnull 42
        40: .line 186
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        41: .line 187
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/InitializeInstanceElementsNode;
            invokevirtual com.oracle.truffle.js.nodes.function.ClassDefinitionNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode
            dup
            astore 10 /* defineStaticFields */
            putfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldsNode:Lcom/oracle/truffle/js/nodes/access/InitializeInstanceElementsNode;
        42: .line 189
      StackMap locals: com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode
      StackMap stack:
            aload 10 /* defineStaticFields */
            aload 7 /* constructor */
            aload 9 /* staticFields */
            invokevirtual com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode.executeStaticFields:(Ljava/lang/Object;[[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // com.oracle.truffle.js.nodes.access.InitializeInstanceElementsNode defineStaticFields
        43: .line 192
      StackMap locals:
      StackMap stack:
            aload 7 /* constructor */
            areturn
        end local 9 // java.lang.Object[][] staticFields
        end local 8 // java.lang.Object[][] instanceFields
        end local 7 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 6 // com.oracle.truffle.api.object.DynamicObject proto
        end local 5 // java.lang.Object constructorParent
        end local 4 // java.lang.Object protoParent
        end local 3 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 2 // java.lang.Object className
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   44     0                this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0   44     1               frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   44     2           className  Ljava/lang/Object;
            1   44     3               realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2   44     4         protoParent  Ljava/lang/Object;
            3   44     5   constructorParent  Ljava/lang/Object;
            5   16     6          superclass  Ljava/lang/Object;
           18   44     6               proto  Lcom/oracle/truffle/api/object/DynamicObject;
           19   44     7         constructor  Lcom/oracle/truffle/api/object/DynamicObject;
           26   44     8      instanceFields  [[Ljava/lang/Object;
           29   44     9        staticFields  [[Ljava/lang/Object;
           36   37    10        privateBrand  Lcom/oracle/truffle/api/object/HiddenKey;
           39   43    10  defineStaticFields  Lcom/oracle/truffle/js/nodes/access/InitializeInstanceElementsNode;
    MethodParameters:
           Name  Flags
      frame      
      className  

  private void initializeMembers(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, java.lang.Object[][], java.lang.Object[][]);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;[[Ljava/lang/Object;[[Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=6
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // com.oracle.truffle.api.object.DynamicObject proto
        start local 3 // com.oracle.truffle.api.object.DynamicObject constructor
        start local 4 // java.lang.Object[][] instanceFields
        start local 5 // java.lang.Object[][] staticFields
         0: .line 198
            iconst_0
            istore 6 /* instanceFieldIndex */
        start local 6 // int instanceFieldIndex
         1: .line 199
            iconst_0
            istore 7 /* staticFieldIndex */
        start local 7 // int staticFieldIndex
         2: .line 200
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.memberNodes:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 20
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.Object[][] java.lang.Object[][] int int top int int com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[]
      StackMap stack:
         3: aload 11
            iload 9
            aaload
            astore 8 /* memberNode */
        start local 8 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode memberNode
         4: .line 201
            aload 8 /* memberNode */
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.isStatic:()Z
            ifeq 5
            aload 3 /* constructor */
            goto 6
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.Object[][] java.lang.Object[][] int int com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode int int com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[]
      StackMap stack:
         5: aload 2 /* proto */
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.object.DynamicObject
         6: astore 12 /* homeObject */
        start local 12 // com.oracle.truffle.api.object.DynamicObject homeObject
         7: .line 202
            aload 8 /* memberNode */
            aload 1 /* frame */
            aload 12 /* homeObject */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)V
         8: .line 203
            aload 8 /* memberNode */
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.isField:()Z
            ifeq 19
         9: .line 204
            aload 8 /* memberNode */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.executeKey:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 13 /* key */
        start local 13 // java.lang.Object key
        10: .line 205
            aload 8 /* memberNode */
            aload 1 /* frame */
            aload 12 /* homeObject */
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.executeValue:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 14 /* value */
        start local 14 // java.lang.Object value
        11: .line 206
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* key */
            aastore
            dup
            iconst_1
            aload 14 /* value */
            aastore
            dup
            iconst_2
            aload 8 /* memberNode */
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.isAnonymousFunctionDefinition:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            astore 15 /* field */
        start local 15 // java.lang.Object[] field
        12: .line 207
            aload 8 /* memberNode */
            invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.isStatic:()Z
            ifeq 15
            aload 5 /* staticFields */
            ifnull 15
        13: .line 208
            aload 5 /* staticFields */
            iload 7 /* staticFieldIndex */
            iinc 7 /* staticFieldIndex */ 1
            aload 15 /* field */
            aastore
        14: .line 209
            goto 19
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.Object[][] java.lang.Object[][] int int com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode int int com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object java.lang.Object[]
      StackMap stack:
        15: aload 4 /* instanceFields */
            ifnull 18
        16: .line 210
            aload 4 /* instanceFields */
            iload 6 /* instanceFieldIndex */
            iinc 6 /* instanceFieldIndex */ 1
            aload 15 /* field */
            aastore
        17: .line 211
            goto 19
        18: .line 212
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 15 // java.lang.Object[] field
        end local 14 // java.lang.Object value
        end local 13 // java.lang.Object key
        end local 12 // com.oracle.truffle.api.object.DynamicObject homeObject
        end local 8 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode memberNode
        19: .line 200
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.Object[][] java.lang.Object[][] int int top int int com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        20: iload 9
            iload 10
            if_icmplt 3
        21: .line 216
            getstatic com.oracle.truffle.js.nodes.function.ClassDefinitionNode.$assertionsDisabled:Z
            ifne 23
            iload 6 /* instanceFieldIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.instanceFieldCount:I
            if_icmpne 22
            iload 7 /* staticFieldIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldCount:I
            if_icmpeq 23
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.Object[][] java.lang.Object[][] int int
      StackMap stack:
        22: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 217
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int staticFieldIndex
        end local 6 // int instanceFieldIndex
        end local 5 // java.lang.Object[][] staticFields
        end local 4 // java.lang.Object[][] instanceFields
        end local 3 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 2 // com.oracle.truffle.api.object.DynamicObject proto
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   24     0                this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0   24     1               frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   24     2               proto  Lcom/oracle/truffle/api/object/DynamicObject;
            0   24     3         constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            0   24     4      instanceFields  [[Ljava/lang/Object;
            0   24     5        staticFields  [[Ljava/lang/Object;
            1   24     6  instanceFieldIndex  I
            2   24     7    staticFieldIndex  I
            4   19     8          memberNode  Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            7   19    12          homeObject  Lcom/oracle/truffle/api/object/DynamicObject;
           10   19    13                 key  Ljava/lang/Object;
           11   19    14               value  Ljava/lang/Object;
           12   19    15               field  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
                Name  Flags
      frame           
      proto           
      constructor     
      instanceFields  
      staticFields    

  public boolean isResultAlwaysOfType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // java.lang.Class clazz
         0: .line 221
            aload 1 /* clazz */
            ldc Lcom/oracle/truffle/api/object/DynamicObject;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0    2     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public java.lang.String getFunctionName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
         0: .line 226
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.hasName:Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.constructorFunctionNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.FunctionNameHolder
            invokeinterface com.oracle.truffle.js.nodes.function.FunctionNameHolder.getFunctionName:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;

  public void setFunctionName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // java.lang.String name
         0: .line 231
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.constructorFunctionNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.FunctionNameHolder
            aload 1 /* name */
            invokeinterface com.oracle.truffle.js.nodes.function.FunctionNameHolder.setFunctionName:(Ljava/lang/String;)V
         1: .line 232
            return
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
        start local 1 // java.util.Set materializedTags
         0: .line 236
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.constructorFunctionNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.function.ClassDefinitionNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.classHeritageNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.function.ClassDefinitionNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         1: .line 237
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.memberNodes:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.cloneUninitialized:([Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Ljava/util/Set;)[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
         2: .line 238
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.writeClassBindingNode:Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.function.ClassDefinitionNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.hasName:Z
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.instanceFieldCount:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.staticFieldCount:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.ClassDefinitionNode.setPrivateBrandNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            ifnull 3
            iconst_1
            goto 4
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode java.util.Set
      StackMap stack: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode int int int
         3: iconst_0
         4: .line 236
      StackMap locals: com.oracle.truffle.js.nodes.function.ClassDefinitionNode java.util.Set
      StackMap stack: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[] com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode int int int int
            invokestatic com.oracle.truffle.js.nodes.function.ClassDefinitionNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;ZIIZ)Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.function.ClassDefinitionNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/oracle/truffle/js/nodes/function/ClassDefinitionNode;
            0    5     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.nodes.function.ClassDefinitionNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ClassDefinitionNode.java"
InnerClasses:
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
  public abstract CreateObjectWithPrototypeNode = com.oracle.truffle.js.nodes.access.CreateObjectNode$CreateObjectWithPrototypeNode of com.oracle.truffle.js.nodes.access.CreateObjectNode
  public abstract ObjectLiteralMemberNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode