public final class com.oracle.truffle.js.nodes.function.JSBuiltin implements com.oracle.truffle.js.runtime.builtins.Builtin, com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.function.JSBuiltin
  super_class: java.lang.Object
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String fullName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object key;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final byte attributeFlags;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte ecmaScriptVersion;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final com.oracle.truffle.js.nodes.function.BuiltinNodeFactory functionNodeFactory;
    descriptor: Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.js.nodes.function.BuiltinNodeFactory constructorNodeFactory;
    descriptor: Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.js.nodes.function.BuiltinNodeFactory newTargetConstructorNodeFactory;
    descriptor: Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
    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 59
            ldc Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            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.JSBuiltin.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.Object, int, int, int, boolean, com.oracle.truffle.js.nodes.function.BuiltinNodeFactory, com.oracle.truffle.js.nodes.function.BuiltinNodeFactory, com.oracle.truffle.js.nodes.function.BuiltinNodeFactory);
    descriptor: (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
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=10
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // java.lang.String containerName
        start local 2 // java.lang.Object key
        start local 3 // int length
        start local 4 // int attributeFlags
        start local 5 // int ecmaScriptVersion
        start local 6 // boolean annexB
        start local 7 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory functionNodeFactory
        start local 8 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory constructorNodeFactory
        start local 9 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory newTargetConstructorFactory
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            getstatic com.oracle.truffle.js.nodes.function.JSBuiltin.$assertionsDisabled:Z
            ifne 2
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.isAllowedKey:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 75
      StackMap locals: com.oracle.truffle.js.nodes.function.JSBuiltin java.lang.String java.lang.Object int int int int com.oracle.truffle.js.nodes.function.BuiltinNodeFactory com.oracle.truffle.js.nodes.function.BuiltinNodeFactory com.oracle.truffle.js.nodes.function.BuiltinNodeFactory
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.function.JSBuiltin.$assertionsDisabled:Z
            ifne 4
            iload 5 /* ecmaScriptVersion */
            i2b
            iload 5 /* ecmaScriptVersion */
            if_icmpne 3
            iload 4 /* attributeFlags */
            i2b
            iload 4 /* attributeFlags */
            if_icmpeq 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* key */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifeq 5
            aload 2 /* key */
            checkcast com.oracle.truffle.js.runtime.Symbol
            invokevirtual com.oracle.truffle.js.runtime.Symbol.toFunctionNameString:()Ljava/lang/String;
            goto 6
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.function.JSBuiltin
         5: aload 2 /* key */
            checkcast java.lang.String
      StackMap locals: com.oracle.truffle.js.nodes.function.JSBuiltin java.lang.String java.lang.Object int int int int com.oracle.truffle.js.nodes.function.BuiltinNodeFactory com.oracle.truffle.js.nodes.function.BuiltinNodeFactory com.oracle.truffle.js.nodes.function.BuiltinNodeFactory
      StackMap stack: com.oracle.truffle.js.nodes.function.JSBuiltin java.lang.String
         6: putfield com.oracle.truffle.js.nodes.function.JSBuiltin.name:Ljava/lang/String;
         7: .line 77
            aload 0 /* this */
            aload 1 /* containerName */
            ifnonnull 8
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.name:Ljava/lang/String;
            goto 9
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.function.JSBuiltin
         8: new java.lang.StringBuilder
            dup
            aload 1 /* containerName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: com.oracle.truffle.js.nodes.function.JSBuiltin java.lang.String java.lang.Object int int int int com.oracle.truffle.js.nodes.function.BuiltinNodeFactory com.oracle.truffle.js.nodes.function.BuiltinNodeFactory com.oracle.truffle.js.nodes.function.BuiltinNodeFactory
      StackMap stack: com.oracle.truffle.js.nodes.function.JSBuiltin java.lang.String
         9: putfield com.oracle.truffle.js.nodes.function.JSBuiltin.fullName:Ljava/lang/String;
        10: .line 78
            aload 0 /* this */
            aload 2 /* key */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.key:Ljava/lang/Object;
        11: .line 79
            aload 0 /* this */
            iload 3 /* length */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.length:I
        12: .line 80
            aload 0 /* this */
            iload 5 /* ecmaScriptVersion */
            i2b
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.ecmaScriptVersion:B
        13: .line 81
            aload 0 /* this */
            iload 4 /* attributeFlags */
            i2b
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.attributeFlags:B
        14: .line 82
            aload 0 /* this */
            iload 6 /* annexB */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.annexB:Z
        15: .line 83
            aload 0 /* this */
            aload 7 /* functionNodeFactory */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.functionNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
        16: .line 84
            aload 0 /* this */
            aload 8 /* constructorNodeFactory */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.constructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
        17: .line 85
            aload 0 /* this */
            aload 9 /* newTargetConstructorFactory */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltin.newTargetConstructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
        18: .line 86
            return
        end local 9 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory newTargetConstructorFactory
        end local 8 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory constructorNodeFactory
        end local 7 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory functionNodeFactory
        end local 6 // boolean annexB
        end local 5 // int ecmaScriptVersion
        end local 4 // int attributeFlags
        end local 3 // int length
        end local 2 // java.lang.Object key
        end local 1 // java.lang.String containerName
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   19     0                         this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0   19     1                containerName  Ljava/lang/String;
            0   19     2                          key  Ljava/lang/Object;
            0   19     3                       length  I
            0   19     4               attributeFlags  I
            0   19     5            ecmaScriptVersion  I
            0   19     6                       annexB  Z
            0   19     7          functionNodeFactory  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            0   19     8       constructorNodeFactory  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            0   19     9  newTargetConstructorFactory  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
    MethodParameters:
                             Name  Flags
      containerName                
      key                          
      length                       
      attributeFlags               
      ecmaScriptVersion            
      annexB                       
      functionNodeFactory          
      constructorNodeFactory       
      newTargetConstructorFactory  

  public void <init>(java.lang.String, java.lang.String, int, int, com.oracle.truffle.js.nodes.function.BuiltinNodeFactory);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IILcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=6, args_size=6
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // java.lang.String containerName
        start local 2 // java.lang.String name
        start local 3 // int length
        start local 4 // int flags
        start local 5 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory functionNodeFactory
         0: .line 89
            aload 0 /* this */
            aload 1 /* containerName */
            aload 2 /* name */
            iload 3 /* length */
            iload 4 /* flags */
            iconst_5
            iconst_0
            aload 5 /* functionNodeFactory */
            aconst_null
            aconst_null
            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
         1: .line 90
            return
        end local 5 // com.oracle.truffle.js.nodes.function.BuiltinNodeFactory functionNodeFactory
        end local 4 // int flags
        end local 3 // int length
        end local 2 // java.lang.String name
        end local 1 // java.lang.String containerName
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0    2     1        containerName  Ljava/lang/String;
            0    2     2                 name  Ljava/lang/String;
            0    2     3               length  I
            0    2     4                flags  I
            0    2     5  functionNodeFactory  Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
    MethodParameters:
                     Name  Flags
      containerName        
      name                 
      length               
      flags                
      functionNodeFactory  

  public java.lang.String getName();
    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.JSBuiltin this
         0: .line 100
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.name:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public java.lang.String getFullName();
    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.JSBuiltin this
         0: .line 110
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.fullName:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public java.lang.Object getKey();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 115
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.key:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public int getLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 120
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.length:I
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean isConstructor();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 124
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.constructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean hasSeparateConstructor();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 128
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.isConstructor:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.constructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.functionNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean hasNewTargetConstructor();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 132
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.isConstructor:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.newTargetConstructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public int getECMAScriptVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 137
            iconst_5
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.ecmaScriptVersion:B
            invokestatic java.lang.Math.max:(II)I
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean isAnnexB();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 142
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.annexB:Z
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public int getAttributeFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.attributeFlags:B
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean isConfigurable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 152
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.attributeFlags:B
            iconst_2
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 157
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.attributeFlags:B
            iconst_4
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public boolean isEnumerable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 162
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.attributeFlags:B
            iconst_1
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;

  public static com.oracle.truffle.api.source.SourceSection getSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 166
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.createSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
         0: .line 172
            new java.lang.StringBuilder
            dup
            ldc "JSBuiltin [name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.length:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  private static boolean isAllowedKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object key
         0: .line 176
            aload 0 /* key */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifeq 2
         1: .line 177
            iconst_1
            ireturn
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
            instanceof java.lang.String
            ifeq 8
         3: .line 179
            aload 0 /* key */
            checkcast java.lang.String
            astore 1 /* name */
        start local 1 // java.lang.String name
         4: .line 181
            aload 1 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 6
            aload 1 /* name */
            ldc "_"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
            aload 1 /* name */
            ldc "get $_"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
      StackMap locals: java.lang.String
      StackMap stack:
         5: aload 1 /* name */
            ldc "_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
      StackMap locals:
      StackMap stack:
         6: aload 1 /* name */
            ldc "__"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
            aload 1 /* name */
            ldc "__"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 182
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.String name
         8: .line 185
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   key  Ljava/lang/Object;
            4    8     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  public com.oracle.truffle.js.runtime.builtins.JSFunctionData createFunctionData(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 190
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getBuiltinFunctionData:(Lcom/oracle/truffle/js/runtime/builtins/Builtin;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 2 /* cached */
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData cached
         1: .line 191
            aload 2 /* cached */
            ifnull 3
         2: .line 192
            aload 2 /* cached */
            areturn
         3: .line 195
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.getLength:()I
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.getName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.isConstructor:()Z
            iconst_0
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;ILjava/lang/String;ZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 3 /* functionData */
        start local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         4: .line 198
            aload 3 /* functionData */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setLazyInit:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;)V
         5: .line 203
            aload 1 /* context */
            aload 0 /* this */
            aload 3 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.putBuiltinFunctionData:(Lcom/oracle/truffle/js/runtime/builtins/Builtin;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
         6: .line 204
            aload 3 /* functionData */
            areturn
        end local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData cached
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0    7     1       context  Lcom/oracle/truffle/js/runtime/JSContext;
            1    7     2        cached  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            4    7     3  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
         Name  Flags
      context  

  com.oracle.truffle.js.nodes.function.JSBuiltinNode createNode(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // boolean construct
        start local 3 // boolean newTarget
         0: .line 208
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* construct */
            iload 3 /* newTarget */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.createNodeImpl:(Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            astore 4 /* builtinNode */
        start local 4 // com.oracle.truffle.js.nodes.function.JSBuiltinNode builtinNode
         1: .line 209
            aload 4 /* builtinNode */
            iload 2 /* construct */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltinNode.construct:Z
         2: .line 210
            aload 4 /* builtinNode */
            iload 3 /* newTarget */
            putfield com.oracle.truffle.js.nodes.function.JSBuiltinNode.newTarget:Z
         3: .line 211
            aload 4 /* builtinNode */
            areturn
        end local 4 // com.oracle.truffle.js.nodes.function.JSBuiltinNode builtinNode
        end local 3 // boolean newTarget
        end local 2 // boolean construct
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0    4     1      context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     2    construct  Z
            0    4     3    newTarget  Z
            1    4     4  builtinNode  Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
    MethodParameters:
           Name  Flags
      context    
      construct  
      newTarget  

  private com.oracle.truffle.js.nodes.function.JSBuiltinNode createNodeImpl(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // boolean construct
        start local 3 // boolean newTarget
         0: .line 215
            iload 3 /* newTarget */
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.newTargetConstructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            ifnull 2
         1: .line 216
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.newTargetConstructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            aload 1 /* context */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.js.nodes.function.BuiltinNodeFactory.createNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            areturn
         2: .line 217
      StackMap locals:
      StackMap stack:
            iload 2 /* construct */
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.constructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            ifnull 4
         3: .line 218
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.constructorNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            aload 1 /* context */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.js.nodes.function.BuiltinNodeFactory.createNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            areturn
         4: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.JSBuiltin.functionNodeFactory:Lcom/oracle/truffle/js/nodes/function/BuiltinNodeFactory;
            aload 1 /* context */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.js.nodes.function.BuiltinNodeFactory.createNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            areturn
        end local 3 // boolean newTarget
        end local 2 // boolean construct
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0    5     1    context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    5     2  construct  Z
            0    5     3  newTarget  Z
    MethodParameters:
           Name  Flags
      context    
      construct  
      newTarget  

  public static com.oracle.truffle.api.source.SourceSection createSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 225
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.BUILTIN_SOURCE_SECTION:Lcom/oracle/truffle/api/source/SourceSection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void initializeFunctionData(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.nodes.function.JSBuiltin);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 1 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
         0: .line 229
            aload 0 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 230
            aload 2 /* context */
            aload 1 /* builtin */
            iconst_0
            iconst_0
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltinNode.createBuiltin:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;ZZ)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            astore 3 /* functionRoot */
        start local 3 // com.oracle.truffle.js.nodes.function.JSBuiltinNode functionRoot
         2: .line 231
            aconst_null
            astore 4 /* frameDescriptor */
        start local 4 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
         3: .line 232
            aload 3 /* functionRoot */
            aload 4 /* frameDescriptor */
            aload 0 /* functionData */
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            aload 1 /* builtin */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.getFullName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.nodes.function.FunctionRootNode.create:(Lcom/oracle/truffle/js/nodes/function/AbstractBodyNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            astore 5 /* callRoot */
        start local 5 // com.oracle.truffle.js.nodes.function.FunctionRootNode callRoot
         4: .line 234
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 5 /* callRoot */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 6 /* callTarget */
        start local 6 // com.oracle.truffle.api.CallTarget callTarget
         5: .line 235
            aload 0 /* functionData */
            aload 6 /* callTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setRootTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            astore 6 /* callTarget */
         6: .line 236
            aload 0 /* functionData */
            aload 6 /* callTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setCallTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            pop
         7: .line 237
            return
        end local 6 // com.oracle.truffle.api.CallTarget callTarget
        end local 5 // com.oracle.truffle.js.nodes.function.FunctionRootNode callRoot
        end local 4 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        end local 3 // com.oracle.truffle.js.nodes.function.JSBuiltinNode functionRoot
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0     functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    8     1          builtin  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            1    8     2          context  Lcom/oracle/truffle/js/runtime/JSContext;
            2    8     3     functionRoot  Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            3    8     4  frameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            4    8     5         callRoot  Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            5    8     6       callTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
              Name  Flags
      functionData  
      builtin       

  private static void initializeFunctionDataCallTarget(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.nodes.function.JSBuiltin, com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target, com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 1 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target target
        start local 3 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 240
            aload 0 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 241
            invokestatic com.oracle.truffle.js.nodes.NodeFactory.getDefaultInstance:()Lcom/oracle/truffle/js/nodes/NodeFactory;
            astore 5 /* factory */
        start local 5 // com.oracle.truffle.js.nodes.NodeFactory factory
         2: .line 242
            aconst_null
            astore 6 /* frameDescriptor */
        start local 6 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
         3: .line 243
            aload 2 /* target */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.Construct:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            if_acmpne 12
         4: .line 245
            aload 1 /* builtin */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.hasSeparateConstructor:()Z
            ifeq 8
         5: .line 246
            aload 4 /* context */
            aload 1 /* builtin */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltinNode.createBuiltin:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;ZZ)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            astore 8 /* constructNode */
        start local 8 // com.oracle.truffle.js.nodes.function.JSBuiltinNode constructNode
         6: .line 247
            aload 8 /* constructNode */
            aload 6 /* frameDescriptor */
            aload 0 /* functionData */
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            aload 1 /* builtin */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.getFullName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.nodes.function.FunctionRootNode.create:(Lcom/oracle/truffle/js/nodes/function/AbstractBodyNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            astore 7 /* constructRoot */
        end local 8 // com.oracle.truffle.js.nodes.function.JSBuiltinNode constructNode
        start local 7 // com.oracle.truffle.api.nodes.RootNode constructRoot
         7: .line 248
            goto 9
        end local 7 // com.oracle.truffle.api.nodes.RootNode constructRoot
         8: .line 249
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.NodeFactory com.oracle.truffle.api.frame.FrameDescriptor
      StackMap stack:
            aload 5 /* factory */
            aload 0 /* functionData */
            aload 3 /* callTarget */
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstructorRootNode:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;Z)Lcom/oracle/truffle/js/nodes/function/ConstructorRootNode;
            astore 7 /* constructRoot */
        start local 7 // com.oracle.truffle.api.nodes.RootNode constructRoot
         9: .line 252
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 7 /* constructRoot */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 8 /* constructTarget */
        start local 8 // com.oracle.truffle.api.CallTarget constructTarget
        10: .line 253
            aload 0 /* functionData */
            aload 8 /* constructTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setConstructTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            pop
        end local 8 // com.oracle.truffle.api.CallTarget constructTarget
        end local 7 // com.oracle.truffle.api.nodes.RootNode constructRoot
        11: .line 254
            goto 20
      StackMap locals:
      StackMap stack:
        12: aload 2 /* target */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.ConstructNewTarget:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            if_acmpne 20
        13: .line 256
            aload 1 /* builtin */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.hasNewTargetConstructor:()Z
            ifeq 17
        14: .line 257
            aload 4 /* context */
            aload 1 /* builtin */
            iconst_1
            iconst_1
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltinNode.createBuiltin:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;ZZ)Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
            astore 8 /* constructNewTargetNode */
        start local 8 // com.oracle.truffle.js.nodes.function.AbstractBodyNode constructNewTargetNode
        15: .line 258
            aload 8 /* constructNewTargetNode */
            aload 6 /* frameDescriptor */
            aload 0 /* functionData */
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            aload 1 /* builtin */
            invokevirtual com.oracle.truffle.js.nodes.function.JSBuiltin.getFullName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.nodes.function.FunctionRootNode.create:(Lcom/oracle/truffle/js/nodes/function/AbstractBodyNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            astore 7 /* constructNewTargetRoot */
        end local 8 // com.oracle.truffle.js.nodes.function.AbstractBodyNode constructNewTargetNode
        start local 7 // com.oracle.truffle.js.runtime.JavaScriptRootNode constructNewTargetRoot
        16: .line 259
            goto 19
        end local 7 // com.oracle.truffle.js.runtime.JavaScriptRootNode constructNewTargetRoot
        17: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getConstructTarget:()Lcom/oracle/truffle/api/CallTarget;
            astore 8 /* constructTarget */
        start local 8 // com.oracle.truffle.api.CallTarget constructTarget
        18: .line 261
            aload 5 /* factory */
            aload 0 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 8 /* constructTarget */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDropNewTarget:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
            astore 7 /* constructNewTargetRoot */
        end local 8 // com.oracle.truffle.api.CallTarget constructTarget
        start local 7 // com.oracle.truffle.js.runtime.JavaScriptRootNode constructNewTargetRoot
        19: .line 263
      StackMap locals: com.oracle.truffle.js.runtime.JavaScriptRootNode
      StackMap stack:
            aload 0 /* functionData */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 7 /* constructNewTargetRoot */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setConstructNewTarget:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            pop
        end local 7 // com.oracle.truffle.js.runtime.JavaScriptRootNode constructNewTargetRoot
        20: .line 265
      StackMap locals:
      StackMap stack:
            return
        end local 6 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        end local 5 // com.oracle.truffle.js.nodes.NodeFactory factory
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // com.oracle.truffle.api.CallTarget callTarget
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target target
        end local 1 // com.oracle.truffle.js.nodes.function.JSBuiltin builtin
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   21     0            functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0   21     1                 builtin  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0   21     2                  target  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            0   21     3              callTarget  Lcom/oracle/truffle/api/CallTarget;
            1   21     4                 context  Lcom/oracle/truffle/js/runtime/JSContext;
            2   21     5                 factory  Lcom/oracle/truffle/js/nodes/NodeFactory;
            3   21     6         frameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            7    8     7           constructRoot  Lcom/oracle/truffle/api/nodes/RootNode;
            9   11     7           constructRoot  Lcom/oracle/truffle/api/nodes/RootNode;
            6    7     8           constructNode  Lcom/oracle/truffle/js/nodes/function/JSBuiltinNode;
           10   11     8         constructTarget  Lcom/oracle/truffle/api/CallTarget;
           16   17     7  constructNewTargetRoot  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
           19   20     7  constructNewTargetRoot  Lcom/oracle/truffle/js/runtime/JavaScriptRootNode;
           15   16     8  constructNewTargetNode  Lcom/oracle/truffle/js/nodes/function/AbstractBodyNode;
           18   19     8         constructTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
              Name  Flags
      functionData  
      builtin       
      target        
      callTarget    

  public void initializeRoot(com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 269
            aload 1 /* functionData */
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.initializeFunctionData:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
         1: .line 270
            return
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0    2     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
              Name  Flags
      functionData  

  public void initializeCallTarget(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target, com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target target
        start local 3 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 274
            aload 1 /* functionData */
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* callTarget */
            invokestatic com.oracle.truffle.js.nodes.function.JSBuiltin.initializeFunctionDataCallTarget:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;Lcom/oracle/truffle/api/CallTarget;)V
         1: .line 275
            return
        end local 3 // com.oracle.truffle.api.CallTarget callTarget
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target target
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.nodes.function.JSBuiltin this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
            0    2     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    2     2        target  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            0    2     3    callTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
              Name  Flags
      functionData  
      target        
      callTarget    
}
SourceFile: "JSBuiltin.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract CallTargetInitializer = com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer of com.oracle.truffle.js.runtime.builtins.JSFunctionData
  public abstract Initializer = com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer of com.oracle.truffle.js.runtime.builtins.JSFunctionData
  public final Target = com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target of com.oracle.truffle.js.runtime.builtins.JSFunctionData