public abstract class com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch extends com.oracle.truffle.js.builtins.JSBuiltinsContainer
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch
  super_class: com.oracle.truffle.js.builtins.JSBuiltinsContainer
{
  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 98
            ldc Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
        start local 1 // java.lang.String name
         0: .line 101
            aload 0 /* this */
            aload 1 /* name */
            invokespecial com.oracle.truffle.js.builtins.JSBuiltinsContainer.<init>:(Ljava/lang/String;)V
         1: .line 102
            return
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  protected final void defineFunction(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
        start local 1 // java.lang.String name
        start local 2 // int length
         0: .line 105
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* length */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefaultNotEnumerable:()I
            invokevirtual com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.defineFunction:(Ljava/lang/String;II)V
         1: .line 106
            return
        end local 2 // int length
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;
            0    2     1    name  Ljava/lang/String;
            0    2     2  length  I
    MethodParameters:
        Name  Flags
      name    
      length  

  protected final void defineFunction(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
        start local 1 // java.lang.String name
        start local 2 // int length
        start local 3 // int attributeFlags
         0: .line 109
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* length */
            iload 3 /* attributeFlags */
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.defineBuiltin:(Ljava/lang/String;IIZZ)V
         1: .line 110
            return
        end local 3 // int attributeFlags
        end local 2 // int length
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;
            0    2     1            name  Ljava/lang/String;
            0    2     2          length  I
            0    2     3  attributeFlags  I
    MethodParameters:
                Name  Flags
      name            
      length          
      attributeFlags  

  protected final void defineConstructor(java.lang.String, int, boolean);
    descriptor: (Ljava/lang/String;IZ)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
        start local 1 // java.lang.String name
        start local 2 // int length
        start local 3 // boolean isNewTargetConstructor
         0: .line 113
            getstatic com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.$assertionsDisabled:Z
            ifne 1
            aload 1 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* length */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefaultNotEnumerable:()I
            iconst_1
            iload 3 /* isNewTargetConstructor */
            invokevirtual com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.defineBuiltin:(Ljava/lang/String;IIZZ)V
         2: .line 115
            return
        end local 3 // boolean isNewTargetConstructor
        end local 2 // int length
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;
            0    3     1                    name  Ljava/lang/String;
            0    3     2                  length  I
            0    3     3  isNewTargetConstructor  Z
    MethodParameters:
                        Name  Flags
      name                    
      length                  
      isNewTargetConstructor  

  private void defineBuiltin(java.lang.String, int, int, boolean, boolean);
    descriptor: (Ljava/lang/String;IIZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=9, args_size=6
        start local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
        start local 1 // java.lang.String name
        start local 2 // int length
        start local 3 // int attributeFlags
        start local 4 // boolean isConstructor
        start local 5 // boolean isNewTargetConstructor
         0: .line 133
            getstatic com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.$assertionsDisabled:Z
            ifne 1
            aload 1 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 134
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl
            dup
            aload 0 /* this */
            iconst_0
            iconst_0
            invokespecial com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl.<init>:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;ZZ)V
            astore 6 /* call */
        start local 6 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory call
         2: .line 135
            iload 4 /* isConstructor */
            ifeq 3
            new com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl
            dup
            aload 0 /* this */
            iconst_1
            iconst_0
            invokespecial com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl.<init>:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;ZZ)V
            goto 4
      StackMap locals: com.oracle.truffle.js.nodes.function.BuiltinNodeFactory
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl
         4: astore 7 /* construct */
        start local 7 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory construct
         5: .line 136
            iload 5 /* isNewTargetConstructor */
            ifeq 6
            new com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl
            dup
            aload 0 /* this */
            iconst_1
            iconst_1
            invokespecial com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl.<init>:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;ZZ)V
            goto 7
      StackMap locals: com.oracle.truffle.js.nodes.function.BuiltinNodeFactory
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl
         7: astore 8 /* constructNewTarget */
        start local 8 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory constructNewTarget
         8: .line 137
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.builtins:Lorg/graalvm/collections/EconomicMap;
            aload 1 /* name */
            new com.oracle.truffle.js.nodes.function.JSBuiltin
            dup
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch.getName:()Ljava/lang/String;
            aload 1 /* name */
            iload 2 /* length */
            iload 3 /* attributeFlags */
            iconst_5
            iconst_0
            aload 6 /* call */
            aload 7 /* construct */
            aload 8 /* constructNewTarget */
            invokespecial com.oracle.truffle.js.nodes.function.JSBuiltin.<init>:(Ljava/lang/String;Ljava/lang/Object;IIIZLcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;)V
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 138
            return
        end local 8 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory constructNewTarget
        end local 7 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory construct
        end local 6 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory call
        end local 5 // boolean isNewTargetConstructor
        end local 4 // boolean isConstructor
        end local 3 // int attributeFlags
        end local 2 // int length
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   10     0                    this  Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer$Switch;
            0   10     1                    name  Ljava/lang/String;
            0   10     2                  length  I
            0   10     3          attributeFlags  I
            0   10     4           isConstructor  Z
            0   10     5  isNewTargetConstructor  Z
            2   10     6                    call  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            5   10     7               construct  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            8   10     8      constructNewTarget  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
    MethodParameters:
                        Name  Flags
      name                    
      length                  
      attributeFlags          
      isConstructor           
      isNewTargetConstructor  

  protected abstract java.lang.Object createNode(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;ZZ)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      context    
      builtin    
      construct  
      newTarget  
}
SourceFile: "JSBuiltinsContainer.java"
NestHost: com.oracle.truffle.js.builtins.JSBuiltinsContainer
InnerClasses:
  public abstract Switch = com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch of com.oracle.truffle.js.builtins.JSBuiltinsContainer
  FactoryImpl = com.oracle.truffle.js.builtins.JSBuiltinsContainer$Switch$1FactoryImpl