public final class com.oracle.truffle.js.runtime.builtins.JSFunctionData
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.runtime.builtins.JSFunctionData
  super_class: java.lang.Object
{
  private volatile com.oracle.truffle.api.CallTarget callTarget;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private volatile com.oracle.truffle.api.CallTarget constructTarget;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private volatile com.oracle.truffle.api.CallTarget constructNewTarget;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

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

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

  private static final int IS_CONSTRUCTOR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int IS_DERIVED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int IS_STRICT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int IS_BUILTIN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int NEEDS_PARENT_FRAME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int IS_GENERATOR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int IS_ASYNC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  private static final int IS_CLASS_CONSTRUCTOR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private static final int STRICT_FUNCTION_PROPERTIES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  private static final int NEEDS_NEW_TARGET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  private static final int IS_BOUND;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private volatile com.oracle.truffle.api.CallTarget rootTarget;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer lazyInit;
    descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.CallTarget> UPDATER_CALL_TARGET;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;

  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.CallTarget> UPDATER_CONSTRUCT_TARGET;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;

  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.CallTarget> UPDATER_CONSTRUCT_NEW_TARGET;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;

  private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.CallTarget> UPDATER_ROOT_TARGET;
    descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;

  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=3, locals=0, args_size=0
         0: .line 57
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            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.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
         3: .line 101
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            ldc Lcom/oracle/truffle/api/CallTarget;
            ldc "callTarget"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         4: .line 100
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_CALL_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         5: .line 103
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            ldc Lcom/oracle/truffle/api/CallTarget;
            ldc "constructTarget"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         6: .line 102
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_CONSTRUCT_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         7: .line 105
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            ldc Lcom/oracle/truffle/api/CallTarget;
            ldc "constructNewTarget"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         8: .line 104
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_CONSTRUCT_NEW_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
         9: .line 107
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            ldc Lcom/oracle/truffle/api/CallTarget;
            ldc "rootTarget"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        10: .line 106
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_ROOT_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        11: .line 107
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, int, java.lang.String, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.api.CallTarget callTarget
        start local 3 // com.oracle.truffle.api.CallTarget constructTarget
        start local 4 // com.oracle.truffle.api.CallTarget constructNewTarget
        start local 5 // int length
        start local 6 // java.lang.String name
        start local 7 // int flags
         0: .line 109
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 110
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 111
            aload 0 /* this */
            aload 2 /* callTarget */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.callTarget:Lcom/oracle/truffle/api/CallTarget;
         3: .line 112
            aload 0 /* this */
            aload 3 /* constructTarget */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.constructTarget:Lcom/oracle/truffle/api/CallTarget;
         4: .line 113
            aload 0 /* this */
            aload 4 /* constructNewTarget */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.constructNewTarget:Lcom/oracle/truffle/api/CallTarget;
         5: .line 114
            aload 0 /* this */
            aload 6 /* name */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.name:Ljava/lang/String;
         6: .line 115
            aload 0 /* this */
            iload 5 /* length */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.length:I
         7: .line 116
            aload 0 /* this */
            iload 7 /* flags */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
         8: .line 117
            return
        end local 7 // int flags
        end local 6 // java.lang.String name
        end local 5 // int length
        end local 4 // com.oracle.truffle.api.CallTarget constructNewTarget
        end local 3 // com.oracle.truffle.api.CallTarget constructTarget
        end local 2 // com.oracle.truffle.api.CallTarget callTarget
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    9     1             context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    9     2          callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    9     3     constructTarget  Lcom/oracle/truffle/api/CallTarget;
            0    9     4  constructNewTarget  Lcom/oracle/truffle/api/CallTarget;
            0    9     5              length  I
            0    9     6                name  Ljava/lang/String;
            0    9     7               flags  I
    MethodParameters:
                    Name  Flags
      context             
      callTarget          
      constructTarget     
      constructNewTarget  
      length              
      name                
      flags               

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, int, java.lang.String, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;I)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // com.oracle.truffle.api.CallTarget constructTarget
        start local 3 // com.oracle.truffle.api.CallTarget constructNewTarget
        start local 4 // int length
        start local 5 // java.lang.String name
        start local 6 // int flags
         0: .line 120
            new com.oracle.truffle.js.runtime.builtins.JSFunctionData
            dup
            aload 0 /* context */
            aload 1 /* callTarget */
            aload 2 /* constructTarget */
            aload 3 /* constructNewTarget */
            iload 4 /* length */
            aload 5 /* name */
            iload 6 /* flags */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunctionData.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;I)V
            areturn
        end local 6 // int flags
        end local 5 // java.lang.String name
        end local 4 // int length
        end local 3 // com.oracle.truffle.api.CallTarget constructNewTarget
        end local 2 // com.oracle.truffle.api.CallTarget constructTarget
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        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          callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    1     2     constructTarget  Lcom/oracle/truffle/api/CallTarget;
            0    1     3  constructNewTarget  Lcom/oracle/truffle/api/CallTarget;
            0    1     4              length  I
            0    1     5                name  Ljava/lang/String;
            0    1     6               flags  I
    MethodParameters:
                    Name  Flags
      context             
      callTarget          
      constructTarget     
      constructNewTarget  
      length              
      name                
      flags               

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, int, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZZZZZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=18, args_size=17
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // com.oracle.truffle.api.CallTarget constructTarget
        start local 3 // com.oracle.truffle.api.CallTarget constructNewTarget
        start local 4 // int length
        start local 5 // java.lang.String name
        start local 6 // boolean isConstructor
        start local 7 // boolean isDerived
        start local 8 // boolean isStrict
        start local 9 // boolean isBuiltin
        start local 10 // boolean needsParentFrame
        start local 11 // boolean isGenerator
        start local 12 // boolean isAsync
        start local 13 // boolean isClassConstructor
        start local 14 // boolean strictFunctionProperties
        start local 15 // boolean needsNewTarget
        start local 16 // boolean isBound
         0: .line 126
            iload 6 /* isConstructor */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: iload 7 /* isDerived */
            ifeq 3
            iconst_2
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_0
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
         4: ior
            iload 8 /* isStrict */
            ifeq 5
            iconst_4
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
         6: ior
            iload 9 /* isBuiltin */
            ifeq 7
            bipush 8
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
         8: ior
         9: .line 127
            iload 10 /* needsParentFrame */
            ifeq 10
            bipush 16
            goto 11
      StackMap locals:
      StackMap stack: int
        10: iconst_0
        11: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
        12: .line 127
            iload 11 /* isGenerator */
            ifeq 13
            bipush 32
            goto 14
      StackMap locals:
      StackMap stack: int
        13: iconst_0
        14: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
        15: .line 127
            iload 12 /* isAsync */
            ifeq 16
            bipush 64
            goto 17
      StackMap locals:
      StackMap stack: int
        16: iconst_0
        17: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
        18: .line 127
            iload 13 /* isClassConstructor */
            ifeq 19
            sipush 128
            goto 20
      StackMap locals:
      StackMap stack: int
        19: iconst_0
        20: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
        21: .line 128
            iload 14 /* strictFunctionProperties */
            ifeq 22
            sipush 256
            goto 23
      StackMap locals:
      StackMap stack: int
        22: iconst_0
        23: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
        24: .line 128
            iload 15 /* needsNewTarget */
            ifeq 25
            sipush 512
            goto 26
      StackMap locals:
      StackMap stack: int
        25: iconst_0
        26: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
        27: .line 128
            iload 16 /* isBound */
            ifeq 28
            sipush 1024
            goto 29
      StackMap locals:
      StackMap stack: int
        28: iconst_0
        29: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget com.oracle.truffle.api.CallTarget int java.lang.String int int int int int int int int int int int
      StackMap stack: int int
            ior
            istore 17 /* flags */
        start local 17 // int flags
        30: .line 129
            aload 0 /* context */
            aload 1 /* callTarget */
            aload 2 /* constructTarget */
            aload 3 /* constructNewTarget */
            iload 4 /* length */
            aload 5 /* name */
            iload 17 /* flags */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;I)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 17 // int flags
        end local 16 // boolean isBound
        end local 15 // boolean needsNewTarget
        end local 14 // boolean strictFunctionProperties
        end local 13 // boolean isClassConstructor
        end local 12 // boolean isAsync
        end local 11 // boolean isGenerator
        end local 10 // boolean needsParentFrame
        end local 9 // boolean isBuiltin
        end local 8 // boolean isStrict
        end local 7 // boolean isDerived
        end local 6 // boolean isConstructor
        end local 5 // java.lang.String name
        end local 4 // int length
        end local 3 // com.oracle.truffle.api.CallTarget constructNewTarget
        end local 2 // com.oracle.truffle.api.CallTarget constructTarget
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   31     0                   context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   31     1                callTarget  Lcom/oracle/truffle/api/CallTarget;
            0   31     2           constructTarget  Lcom/oracle/truffle/api/CallTarget;
            0   31     3        constructNewTarget  Lcom/oracle/truffle/api/CallTarget;
            0   31     4                    length  I
            0   31     5                      name  Ljava/lang/String;
            0   31     6             isConstructor  Z
            0   31     7                 isDerived  Z
            0   31     8                  isStrict  Z
            0   31     9                 isBuiltin  Z
            0   31    10          needsParentFrame  Z
            0   31    11               isGenerator  Z
            0   31    12                   isAsync  Z
            0   31    13        isClassConstructor  Z
            0   31    14  strictFunctionProperties  Z
            0   31    15            needsNewTarget  Z
            0   31    16                   isBound  Z
           30   31    17                     flags  I
    MethodParameters:
                          Name  Flags
      context                   
      callTarget                
      constructTarget           
      constructNewTarget        
      length                    
      name                      
      isConstructor             
      isDerived                 
      isStrict                  
      isBuiltin                 
      needsParentFrame          
      isGenerator               
      isAsync                   
      isClassConstructor        
      strictFunctionProperties  
      needsNewTarget            
      isBound                   

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.CallTarget, int, java.lang.String, boolean, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=9, args_size=9
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // com.oracle.truffle.api.CallTarget constructTarget
        start local 3 // int length
        start local 4 // java.lang.String name
        start local 5 // boolean isConstructor
        start local 6 // boolean isDerived
        start local 7 // boolean strictMode
        start local 8 // boolean isBuiltin
         0: .line 134
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 2
            aload 1 /* callTarget */
            ifnull 1
            aload 2 /* constructTarget */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* callTarget */
            aload 2 /* constructTarget */
            aload 2 /* constructTarget */
            iload 3 /* length */
            aload 4 /* name */
            iload 5 /* isConstructor */
            iload 6 /* isDerived */
            iload 7 /* strictMode */
            iload 8 /* isBuiltin */
            iconst_0
            iconst_0
            iconst_0
            iconst_0
         3: .line 136
            aload 0 /* context */
            iload 7 /* strictMode */
            iload 8 /* isBuiltin */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.hasStrictProperties:(Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Z
            iconst_0
            iconst_0
         4: .line 135
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZZZZZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 8 // boolean isBuiltin
        end local 7 // boolean strictMode
        end local 6 // boolean isDerived
        end local 5 // boolean isConstructor
        end local 4 // java.lang.String name
        end local 3 // int length
        end local 2 // com.oracle.truffle.api.CallTarget constructTarget
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0          context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    5     1       callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    5     2  constructTarget  Lcom/oracle/truffle/api/CallTarget;
            0    5     3           length  I
            0    5     4             name  Ljava/lang/String;
            0    5     5    isConstructor  Z
            0    5     6        isDerived  Z
            0    5     7       strictMode  Z
            0    5     8        isBuiltin  Z
    MethodParameters:
                 Name  Flags
      context          
      callTarget       
      constructTarget  
      length           
      name             
      isConstructor    
      isDerived        
      strictMode       
      isBuiltin        

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData createCallOnly(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.CallTarget, int, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // int length
        start local 3 // java.lang.String name
         0: .line 140
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 1
            aload 1 /* callTarget */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getNotConstructibleCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            astore 4 /* constructTarget */
        start local 4 // com.oracle.truffle.api.CallTarget constructTarget
         2: .line 142
            aload 0 /* context */
            aload 1 /* callTarget */
            aload 4 /* constructTarget */
            iload 2 /* length */
            aload 3 /* name */
            iconst_0
            iconst_0
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 4 // com.oracle.truffle.api.CallTarget constructTarget
        end local 3 // java.lang.String name
        end local 2 // int length
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0          context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1       callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    3     2           length  I
            0    3     3             name  Ljava/lang/String;
            2    3     4  constructTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
            Name  Flags
      context     
      callTarget  
      length      
      name        

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData create(com.oracle.truffle.js.runtime.JSContext, int, java.lang.String, boolean, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ILjava/lang/String;ZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=7, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // int length
        start local 2 // java.lang.String name
        start local 3 // boolean isConstructor
        start local 4 // boolean isDerived
        start local 5 // boolean strictMode
        start local 6 // boolean isBuiltin
         0: .line 146
            aload 0 /* context */
            aconst_null
            aconst_null
            aconst_null
            iload 1 /* length */
            aload 2 /* name */
            iload 3 /* isConstructor */
            iload 4 /* isDerived */
            iload 5 /* strictMode */
            iload 6 /* isBuiltin */
            iconst_0
            iconst_0
            iconst_0
            iconst_0
         1: .line 147
            aload 0 /* context */
            iload 5 /* strictMode */
            iload 6 /* isBuiltin */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.hasStrictProperties:(Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Z
            iconst_0
            iconst_0
         2: .line 146
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZZZZZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 6 // boolean isBuiltin
        end local 5 // boolean strictMode
        end local 4 // boolean isDerived
        end local 3 // boolean isConstructor
        end local 2 // java.lang.String name
        end local 1 // int length
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0        context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1         length  I
            0    3     2           name  Ljava/lang/String;
            0    3     3  isConstructor  Z
            0    3     4      isDerived  Z
            0    3     5     strictMode  Z
            0    3     6      isBuiltin  Z
    MethodParameters:
               Name  Flags
      context        
      length         
      name           
      isConstructor  
      isDerived      
      strictMode     
      isBuiltin      

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.CallTarget, int, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // int length
        start local 3 // java.lang.String name
         0: .line 151
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 1
            aload 1 /* callTarget */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* callTarget */
            aload 1 /* callTarget */
            aload 1 /* callTarget */
            iload 2 /* length */
            aload 3 /* name */
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;ZZZZZZZZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 3 // java.lang.String name
        end local 2 // int length
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0     context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    2     2      length  I
            0    2     3        name  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      context     
      callTarget  
      length      
      name        

  private static boolean hasStrictProperties(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // boolean strictMode
        start local 2 // boolean isBuiltin
         0: .line 157
            iload 2 /* isBuiltin */
            ifeq 2
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            bipush 6
            if_icmplt 1
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 1 /* strictMode */
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 2 // boolean isBuiltin
        end local 1 // boolean strictMode
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0     context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     1  strictMode  Z
            0    4     2   isBuiltin  Z
    MethodParameters:
            Name  Flags
      context     
      strictMode  
      isBuiltin   

  public com.oracle.truffle.api.CallTarget getCallTarget();
    descriptor: ()Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 161
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.callTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 1 /* result */
        start local 1 // com.oracle.truffle.api.CallTarget result
         1: .line 162
            aload 1 /* result */
            ifnull 3
         2: .line 163
            aload 1 /* result */
            areturn
         3: .line 165
      StackMap locals: com.oracle.truffle.api.CallTarget
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         4: .line 166
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.Call:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitialized:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget result
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            1    5     1  result  Lcom/oracle/truffle/api/CallTarget;

  public com.oracle.truffle.api.CallTarget getConstructTarget();
    descriptor: ()Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 170
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.constructTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 1 /* result */
        start local 1 // com.oracle.truffle.api.CallTarget result
         1: .line 171
            aload 1 /* result */
            ifnull 3
         2: .line 172
            aload 1 /* result */
            areturn
         3: .line 174
      StackMap locals: com.oracle.truffle.api.CallTarget
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         4: .line 175
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.Construct:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitialized:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget result
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            1    5     1  result  Lcom/oracle/truffle/api/CallTarget;

  public com.oracle.truffle.api.CallTarget getConstructNewTarget();
    descriptor: ()Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 179
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.constructNewTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 1 /* result */
        start local 1 // com.oracle.truffle.api.CallTarget result
         1: .line 180
            aload 1 /* result */
            ifnull 3
         2: .line 181
            aload 1 /* result */
            areturn
         3: .line 183
      StackMap locals: com.oracle.truffle.api.CallTarget
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         4: .line 184
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.ConstructNewTarget:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitialized:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget result
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            1    5     1  result  Lcom/oracle/truffle/api/CallTarget;

  public com.oracle.truffle.js.runtime.JSContext getContext();
    descriptor: ()Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 188
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.context:Lcom/oracle/truffle/js/runtime/JSContext;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  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.runtime.builtins.JSFunctionData this
         0: .line 192
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.name:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public void setName(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.runtime.builtins.JSFunctionData this
        start local 1 // java.lang.String name
         0: .line 196
            aload 0 /* this */
            aload 1 /* name */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.name:Ljava/lang/String;
         1: .line 197
            return
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

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

  public boolean isConstructor();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 204
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            iconst_1
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isStrict();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 208
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            iconst_4
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean hasStrictFunctionProperties();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 212
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            sipush 256
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isBuiltin();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 216
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            bipush 8
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean needsParentFrame();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 220
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            bipush 16
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isGenerator();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 224
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            bipush 32
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isAsync();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 228
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            bipush 64
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isAsyncGenerator();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 232
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isGenerator:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isAsync:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isDerived();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 236
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            iconst_2
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isClassConstructor();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 240
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            sipush 128
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isPrototypeNotWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 244
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isClassConstructor:()Z
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean requiresNew();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 248
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isClassConstructor:()Z
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean needsNewTarget();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 252
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            sipush 512
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public boolean isBound();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 256
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            sipush 1024
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public int getFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 260
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.flags:I
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  public com.oracle.truffle.api.CallTarget getCallTarget(com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/profiles/BranchProfile;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.profiles.BranchProfile initBranch
         0: .line 264
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.callTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.api.CallTarget result
         1: .line 265
            ldc 0.9999
            aload 2 /* result */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.CallTarget
      StackMap stack: double
         2: iconst_0
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.CallTarget
      StackMap stack: double int
         3: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
            ifeq 5
         4: .line 266
            aload 2 /* result */
            areturn
         5: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* initBranch */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         6: .line 269
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitializedCall:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget result
        end local 1 // com.oracle.truffle.api.profiles.BranchProfile initBranch
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    7     1  initBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1    7     2      result  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
            Name  Flags
      initBranch  

  public com.oracle.truffle.api.CallTarget getConstructTarget(com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/profiles/BranchProfile;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.profiles.BranchProfile initBranch
         0: .line 273
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.constructTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.api.CallTarget result
         1: .line 274
            ldc 0.9999
            aload 2 /* result */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.CallTarget
      StackMap stack: double
         2: iconst_0
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.CallTarget
      StackMap stack: double int
         3: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
            ifeq 5
         4: .line 275
            aload 2 /* result */
            areturn
         5: .line 277
      StackMap locals:
      StackMap stack:
            aload 1 /* initBranch */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         6: .line 278
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitializedConstruct:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget result
        end local 1 // com.oracle.truffle.api.profiles.BranchProfile initBranch
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    7     1  initBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1    7     2      result  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
            Name  Flags
      initBranch  

  public com.oracle.truffle.api.CallTarget getConstructNewTarget(com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/profiles/BranchProfile;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.profiles.BranchProfile initBranch
         0: .line 282
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.constructNewTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.api.CallTarget result
         1: .line 283
            ldc 0.9999
            aload 2 /* result */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.CallTarget
      StackMap stack: double
         2: iconst_0
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.CallTarget
      StackMap stack: double int
         3: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
            ifeq 5
         4: .line 284
            aload 2 /* result */
            areturn
         5: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* initBranch */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         6: .line 287
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitializedConstructNewTarget:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget result
        end local 1 // com.oracle.truffle.api.profiles.BranchProfile initBranch
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    7     1  initBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1    7     2      result  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
            Name  Flags
      initBranch  

  private java.lang.Object ensureInitializedCall();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 292
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.Call:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitialized:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  private java.lang.Object ensureInitializedConstruct();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 297
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.Construct:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitialized:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  private java.lang.Object ensureInitializedConstructNewTarget();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 302
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.ConstructNewTarget:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.ensureInitialized:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public com.oracle.truffle.api.CallTarget setCallTarget(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
         0: .line 306
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_CALL_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 1 /* callTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setAndGetCallTarget:(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     1  callTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
            Name  Flags
      callTarget  

  public com.oracle.truffle.api.CallTarget setConstructTarget(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.CallTarget constructTarget
         0: .line 310
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_CONSTRUCT_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 1 /* constructTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setAndGetCallTarget:(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget constructTarget
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     1  constructTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
                 Name  Flags
      constructTarget  

  public com.oracle.truffle.api.CallTarget setConstructNewTarget(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.CallTarget constructNewTarget
         0: .line 314
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_CONSTRUCT_NEW_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 1 /* constructNewTarget */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setAndGetCallTarget:(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 1 // com.oracle.truffle.api.CallTarget constructNewTarget
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     1  constructNewTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
                    Name  Flags
      constructNewTarget  

  public com.oracle.truffle.api.CallTarget setRootTarget(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.api.CallTarget rootTarget
         0: .line 318
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 319
            aload 1 /* rootTarget */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 320
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.UPDATER_ROOT_TARGET:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            aload 0 /* this */
            aconst_null
            aload 1 /* rootTarget */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 4
         3: .line 321
            aload 1 /* rootTarget */
            areturn
         4: .line 323
      StackMap locals:
      StackMap stack:
            ldc "call target created more than once"
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // com.oracle.truffle.api.CallTarget rootTarget
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    5     1  rootTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
            Name  Flags
      rootTarget  

  private com.oracle.truffle.api.CallTarget setAndGetCallTarget(java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.CallTarget>, com.oracle.truffle.api.CallTarget);
    descriptor: (Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater updater
        start local 2 // com.oracle.truffle.api.CallTarget newTarget
         0: .line 328
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 329
            aload 2 /* newTarget */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 330
            aload 1 /* updater */
            aload 0 /* this */
            aconst_null
            aload 2 /* newTarget */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 4
         3: .line 331
            aload 2 /* newTarget */
            areturn
         4: .line 333
      StackMap locals:
      StackMap stack:
            aload 1 /* updater */
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget newTarget
        end local 1 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater updater
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    5     1    updater  Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;
            0    5     2  newTarget  Lcom/oracle/truffle/api/CallTarget;
    Signature: (Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
           Name  Flags
      updater    
      newTarget  

  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.runtime.builtins.JSFunctionData this
         0: .line 340
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            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 */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public void setLazyInit(com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer lazyInit
         0: .line 345
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.lazyInit:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* lazyInit */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.lazyInit:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
         2: .line 347
            return
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer lazyInit
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    3     1  lazyInit  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
    MethodParameters:
          Name  Flags
      lazyInit  

  public boolean hasLazyInit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 350
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.lazyInit:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;

  private com.oracle.truffle.api.CallTarget ensureInitialized(com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target target
         0: .line 354
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 355
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.lazyInit:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
            astore 2 /* init */
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer init
         2: .line 356
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 3
            aload 2 /* init */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 357
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.rootTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 3 /* rootCallTarget */
        start local 3 // com.oracle.truffle.api.CallTarget rootCallTarget
         4: .line 358
            aload 3 /* rootCallTarget */
            ifnonnull 16
         5: .line 360
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.context:Lcom/oracle/truffle/js/runtime/JSContext;
            dup
            astore 4
            monitorenter
         6: .line 361
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.rootTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 3 /* rootCallTarget */
         7: .line 362
            aload 3 /* rootCallTarget */
            ifnonnull 12
         8: .line 363
            aload 2 /* init */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer.initializeRoot:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
         9: .line 364
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.rootTarget:Lcom/oracle/truffle/api/CallTarget;
            astore 3 /* rootCallTarget */
        10: .line 367
            aload 2 /* init */
            instanceof com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
            ifne 12
        11: .line 368
            aload 0 /* this */
            aload 3 /* rootCallTarget */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
            dup
            astore 2 /* init */
            putfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.lazyInit:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
        12: .line 360
      StackMap locals: com.oracle.truffle.api.CallTarget com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 4
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 4
            monitorexit
        15: athrow
        16: .line 373
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 17
            aload 3 /* rootCallTarget */
            ifnonnull 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 374
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target.getUpdater:()Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
            astore 4 /* updater */
        start local 4 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater updater
        18: .line 375
            aload 4 /* updater */
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            astore 5 /* result */
        start local 5 // com.oracle.truffle.api.CallTarget result
        19: .line 376
            aload 5 /* result */
            ifnull 21
        20: .line 377
            aload 5 /* result */
            areturn
        21: .line 380
      StackMap locals: java.util.concurrent.atomic.AtomicReferenceFieldUpdater com.oracle.truffle.api.CallTarget
      StackMap stack:
            aload 2 /* init */
            instanceof com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
            ifeq 24
        22: .line 381
            aload 2 /* init */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
            astore 6 /* callTargetInit */
        start local 6 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer callTargetInit
        23: .line 382
            goto 25
        end local 6 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer callTargetInit
        24: .line 383
      StackMap locals:
      StackMap stack:
            aload 3 /* rootCallTarget */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
            astore 6 /* callTargetInit */
        start local 6 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer callTargetInit
        25: .line 385
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer
      StackMap stack:
            aload 6 /* callTargetInit */
            aload 0 /* this */
            aload 1 /* target */
            aload 3 /* rootCallTarget */
            invokeinterface com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer.initializeCallTarget:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;Lcom/oracle/truffle/api/CallTarget;)V
        26: .line 386
            aload 4 /* updater */
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            astore 5 /* result */
        27: .line 387
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 28
            aload 5 /* result */
            ifnonnull 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 388
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            areturn
        end local 6 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer callTargetInit
        end local 5 // com.oracle.truffle.api.CallTarget result
        end local 4 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater updater
        end local 3 // com.oracle.truffle.api.CallTarget rootCallTarget
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer init
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target target
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0   29     1          target  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Target;
            2   29     2            init  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
            4   29     3  rootCallTarget  Lcom/oracle/truffle/api/CallTarget;
           18   29     4         updater  Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/CallTarget;>;
           19   29     5          result  Lcom/oracle/truffle/api/CallTarget;
           23   24     6  callTargetInit  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$CallTargetInitializer;
           25   29     6  callTargetInit  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$CallTargetInitializer;
      Exception table:
        from    to  target  type
           6    13      14  any
          14    15      14  any
    MethodParameters:
        Name  Flags
      target  

  public void materialize();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
         0: .line 392
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 393
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isBuiltin:()Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.lazyInit:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
            astore 1 /* init */
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer init
         3: .line 395
            aload 1 /* init */
            ifnull 11
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.rootTarget:Lcom/oracle/truffle/api/CallTarget;
            ifnonnull 11
         4: .line 397
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.context:Lcom/oracle/truffle/js/runtime/JSContext;
            dup
            astore 2
            monitorenter
         5: .line 398
            aload 0 /* this */
            getfield com.oracle.truffle.js.runtime.builtins.JSFunctionData.rootTarget:Lcom/oracle/truffle/api/CallTarget;
            ifnonnull 7
         6: .line 399
            aload 1 /* init */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer.initializeRoot:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
         7: .line 397
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer init
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            3   12     1  init  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
      Exception table:
        from    to  target  type
           5     8       9  any
           9    10       9  any
}
SourceFile: "JSFunctionData.java"
NestMembers:
  com.oracle.truffle.js.runtime.builtins.JSFunctionData$CallTargetInitializer  com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer  com.oracle.truffle.js.runtime.builtins.JSFunctionData$Target
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  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