public final class com.oracle.truffle.js.runtime.builtins.JSFunction extends com.oracle.truffle.js.runtime.builtins.JSNonProxy
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.runtime.builtins.JSFunction
  super_class: com.oracle.truffle.js.runtime.builtins.JSNonProxy
{
  public static final java.lang.String TYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "function"

  public static final java.lang.String CLASS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Function"

  public static final java.lang.String CLASS_NAME_NASHORN_COMPAT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "FunctionNashornCompat"

  public static final java.lang.String PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Function.prototype"

  public static final java.lang.String GENERATOR_FUNCTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "GeneratorFunction"

  public static final java.lang.String GENERATOR_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Generator"

  public static final java.lang.String GENERATOR_PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Generator.prototype"

  public static final java.lang.String ASYNC_FUNCTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "AsyncFunction"

  public static final java.lang.String ASYNC_GENERATOR_FUNCTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "AsyncGeneratorFunction"

  public static final java.lang.String ASYNC_GENERATOR_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "AsyncGenerator"

  public static final java.lang.String ASYNC_GENERATOR_PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "AsyncGenerator.prototype"

  public static final java.lang.String ENUMERATE_ITERATOR_PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "[[Enumerate]].prototype"

  public static final java.lang.String FOR_IN_ITERATOR_PROTOYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "%ForInIteratorPrototype%"

  public static final java.lang.String CALLER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "caller"

  public static final java.lang.String ARGUMENTS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "arguments"

  public static final java.lang.String LENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "length"

  public static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "name"

  public static final java.lang.String PROGRAM_FUNCTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: ":program"

  public static final java.lang.String BUILTIN_SOURCE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "<builtin>"

  public static final com.oracle.truffle.api.source.SourceSection BUILTIN_SOURCE_SECTION;
    descriptor: Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey ASYNC_FROM_SYNC_ITERATOR_KEY;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String ASYNC_FROM_SYNC_ITERATOR_PROTOTYPE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "%AsyncFromSyncIteratorPrototype%"

  public static final com.oracle.truffle.js.runtime.objects.PropertyProxy PROTOTYPE_PROXY;
    descriptor: Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.js.runtime.objects.PropertyProxy LENGTH_PROXY;
    descriptor: Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.js.runtime.objects.PropertyProxy NAME_PROXY;
    descriptor: Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.Object CLASS_PROTOTYPE_PLACEHOLDER;
    descriptor: Ljava/lang/Object;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.js.runtime.builtins.JSFunction INSTANCE;
    descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey HOME_OBJECT_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey CLASS_FIELDS_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey PRIVATE_BRAND_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey GENERATOR_STATE_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey GENERATOR_CONTEXT_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey GENERATOR_TARGET_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey ASYNC_GENERATOR_STATE_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey ASYNC_GENERATOR_CONTEXT_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey ASYNC_GENERATOR_QUEUE_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey ASYNC_GENERATOR_TARGET_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey GENERATOR_FUNCTION_MARKER_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.object.HiddenKey ASYNC_GENERATOR_FUNCTION_MARKER_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.js.runtime.objects.JSDynamicObject CONSTRUCT;
    descriptor: Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 92
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            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.JSFunction.$assertionsDisabled:Z
         3: .line 114
            ldc "<builtin>"
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createBuiltinSourceSection:(Ljava/lang/String;)Lcom/oracle/truffle/api/source/SourceSection;
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.BUILTIN_SOURCE_SECTION:Lcom/oracle/truffle/api/source/SourceSection;
         4: .line 116
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "SyncIterator"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_FROM_SYNC_ITERATOR_KEY:Lcom/oracle/truffle/api/object/HiddenKey;
         5: .line 119
            new com.oracle.truffle.js.runtime.builtins.JSFunction$ClassPrototypeProxyProperty
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$ClassPrototypeProxyProperty.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.PROTOTYPE_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
         6: .line 150
            new com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionLengthPropertyProxy
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionLengthPropertyProxy.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.LENGTH_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
         7: .line 181
            new com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionNamePropertyProxy
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionNamePropertyProxy.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.NAME_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
         8: .line 184
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
         9: .line 186
            new com.oracle.truffle.js.runtime.builtins.JSFunction
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
        10: .line 188
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "HomeObject"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.HOME_OBJECT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        11: .line 189
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "Fields"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_FIELDS_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        12: .line 190
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "PrivateBrand"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.PRIVATE_BRAND_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        13: .line 192
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "GeneratorState"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.GENERATOR_STATE_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        14: .line 193
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "GeneratorContext"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.GENERATOR_CONTEXT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        15: .line 194
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "GeneratorTarget"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.GENERATOR_TARGET_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        16: .line 196
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "AsyncGeneratorState"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_GENERATOR_STATE_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        17: .line 197
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "AsyncGeneratorContext"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_GENERATOR_CONTEXT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        18: .line 198
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "AsyncGeneratorQueue"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_GENERATOR_QUEUE_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        19: .line 199
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "AsyncGeneratorTarget"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_GENERATOR_TARGET_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        20: .line 202
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "generator function"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.GENERATOR_FUNCTION_MARKER_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        21: .line 203
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "async generator function"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_GENERATOR_FUNCTION_MARKER_ID:Lcom/oracle/truffle/api/object/HiddenKey;
        22: .line 723
            new com.oracle.truffle.js.runtime.objects.Nullish
            dup
            invokespecial com.oracle.truffle.js.runtime.objects.Nullish.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CONSTRUCT:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
         0: .line 220
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.<init>:()V
         1: .line 221
            return
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunction;

  public static com.oracle.truffle.api.CallTarget getCallTarget(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 224
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.frame.MaterializedFrame getEnclosingFrame(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/frame/MaterializedFrame;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 228
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject.getEnclosingFrame:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData getFunctionData(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 233
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject.getFunctionData:()Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  private static java.lang.Object getClassPrototypeField(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 238
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject.getClassPrototype:()Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  private static void setClassPrototypeField(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object classPrototype
         0: .line 243
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject
            aload 1 /* classPrototype */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject.setClassPrototype:(Ljava/lang/Object;)V
         2: .line 245
            return
        end local 1 // java.lang.Object classPrototype
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0             obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  classPrototype  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      obj             
      classPrototype  

  public static com.oracle.truffle.js.runtime.JSRealm getRealm(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 248
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.js.runtime.JSRealm getRealm(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/JSRealm;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject functionObj
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 256
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* functionObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 258
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isSingleRealm:()Z
            ifeq 4
         2: .line 259
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         3: .line 260
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 5
            aload 2 /* realm */
            aload 0 /* functionObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            if_acmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         4: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* functionObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         5: .line 264
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm
      StackMap stack:
            aload 2 /* realm */
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.api.object.DynamicObject functionObj
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0  functionObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    6     1      context  Lcom/oracle/truffle/js/runtime/JSContext;
            3    4     2        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            5    6     2        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
             Name  Flags
      functionObj  
      context      

  public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 268
            aload 0 /* realm */
            aload 1 /* functionData */
            getstatic com.oracle.truffle.js.runtime.JSFrameUtil.NULL_MATERIALIZED_FRAME:Lcom/oracle/truffle/api/frame/MaterializedFrame;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
              Name  Flags
      realm         
      functionData  

  public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
         0: .line 272
            aload 1 /* functionData */
            aload 2 /* enclosingFrame */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            aload 0 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createDefault:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     1    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     2  enclosingFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
    MethodParameters:
                Name  Flags
      realm           
      functionData    
      enclosingFrame  

  public static com.oracle.truffle.api.object.DynamicObject createWithPrototype(com.oracle.truffle.js.runtime.builtins.JSFunctionFactory, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.frame.MaterializedFrame, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        start local 4 // com.oracle.truffle.api.object.DynamicObject prototype
         0: .line 276
            aload 0 /* factory */
            aload 2 /* functionData */
            aload 3 /* enclosingFrame */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            aload 1 /* realm */
            aload 4 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createWithPrototype:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         factory  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
            0    1     1           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     2    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     3  enclosingFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    1     4       prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                Name  Flags
      factory         
      realm           
      functionData    
      enclosingFrame  
      prototype       

  public static com.oracle.truffle.api.object.DynamicObject createLexicalThis(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.frame.MaterializedFrame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        start local 3 // java.lang.Object lexicalThis
         0: .line 280
            aload 1 /* functionData */
            aload 2 /* enclosingFrame */
            aload 3 /* lexicalThis */
            aload 0 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createDefault:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 3 // java.lang.Object lexicalThis
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     1    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     2  enclosingFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    1     3     lexicalThis  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      realm           
      functionData    
      enclosingFrame  
      lexicalThis     

  private static com.oracle.truffle.api.object.DynamicObject createDefault(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.frame.MaterializedFrame, java.lang.Object, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 1 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        start local 2 // java.lang.Object classPrototype
        start local 3 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 284
            aload 0 /* functionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.initialFactory:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
            astore 4 /* factory */
        start local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
         1: .line 285
            aload 4 /* factory */
            aload 0 /* functionData */
            aload 1 /* enclosingFrame */
            aload 2 /* classPrototype */
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionFactory.create:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 4 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
        end local 3 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 2 // java.lang.Object classPrototype
        end local 1 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    2     1  enclosingFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    2     2  classPrototype  Ljava/lang/Object;
            0    2     3           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    2     4         factory  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
    MethodParameters:
                Name  Flags
      functionData    
      enclosingFrame  
      classPrototype  
      realm           

  private static com.oracle.truffle.api.object.DynamicObject createWithPrototype(com.oracle.truffle.js.runtime.builtins.JSFunctionFactory, com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.frame.MaterializedFrame, java.lang.Object, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        start local 3 // java.lang.Object classPrototype
        start local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 5 // com.oracle.truffle.api.object.DynamicObject prototype
         0: .line 290
            aload 0 /* factory */
            aload 1 /* functionData */
            aload 2 /* enclosingFrame */
            aload 3 /* classPrototype */
            aload 4 /* realm */
            aload 5 /* prototype */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionFactory.createWithPrototype:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 5 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 3 // java.lang.Object classPrototype
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         factory  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
            0    1     1    functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    1     2  enclosingFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0    1     3  classPrototype  Ljava/lang/Object;
            0    1     4           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     5       prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                Name  Flags
      factory         
      functionData    
      enclosingFrame  
      classPrototype  
      realm           
      prototype       

  public static com.oracle.truffle.api.object.DynamicObject createBound(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 3 // com.oracle.truffle.api.object.DynamicObject boundTargetFunction
        start local 4 // java.lang.Object boundThis
        start local 5 // java.lang.Object[] boundArguments
         0: .line 294
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 2 /* functionData */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 2 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getBoundFunctionFactory:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
            astore 6 /* factory */
        start local 6 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
         2: .line 296
            aload 6 /* factory */
            aload 2 /* functionData */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            aload 1 /* realm */
            aload 3 /* boundTargetFunction */
            aload 4 /* boundThis */
            aload 5 /* boundArguments */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionFactory.createBound:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 6 // com.oracle.truffle.js.runtime.builtins.JSFunctionFactory factory
        end local 5 // java.lang.Object[] boundArguments
        end local 4 // java.lang.Object boundThis
        end local 3 // com.oracle.truffle.api.object.DynamicObject boundTargetFunction
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        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                realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    3     2         functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    3     3  boundTargetFunction  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     4            boundThis  Ljava/lang/Object;
            0    3     5       boundArguments  [Ljava/lang/Object;
            2    3     6              factory  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
    MethodParameters:
                     Name  Flags
      context              
      realm                
      functionData         
      boundTargetFunction  
      boundThis            
      boundArguments       

  private static com.oracle.truffle.js.runtime.builtins.JSFunctionFactory initialFactory(com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 300
            aload 0 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getFunctionFactory:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionFactory;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
              Name  Flags
      functionData  

  public static java.lang.String getName(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 304
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static java.lang.Object call(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject functionObject
        start local 1 // java.lang.Object thisObject
        start local 2 // java.lang.Object[] argumentValues
         0: .line 308
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 309
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 2
            aload 1 /* thisObject */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 310
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObject */
            aload 0 /* functionObject */
            aload 2 /* argumentValues */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            astore 3 /* arguments */
        start local 3 // java.lang.Object[] arguments
         3: .line 311
            aload 0 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getCallTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
            aload 3 /* arguments */
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object[] arguments
        end local 2 // java.lang.Object[] argumentValues
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.api.object.DynamicObject functionObject
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  functionObject  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     1      thisObject  Ljava/lang/Object;
            0    4     2  argumentValues  [Ljava/lang/Object;
            3    4     3       arguments  [Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      functionObject  
      thisObject      
      argumentValues  

  public static java.lang.Object call(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] jsArguments
         0: .line 315
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* jsArguments */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.getFunctionObject:([Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 316
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 2
            aload 0 /* jsArguments */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.getThisObject:([Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* jsArguments */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.getFunctionObject:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getCallTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
            aload 0 /* jsArguments */
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // java.lang.Object[] jsArguments
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  jsArguments  [Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      jsArguments  

  public static java.lang.Object construct(com.oracle.truffle.api.object.DynamicObject, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject functionObject
        start local 1 // java.lang.Object[] argumentValues
         0: .line 321
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 2
            aload 0 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isConstructor:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 322
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CONSTRUCT:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 0 /* functionObject */
            aload 1 /* argumentValues */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            astore 2 /* arguments */
        start local 2 // java.lang.Object[] arguments
         3: .line 323
            aload 0 /* functionObject */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getConstructTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
            aload 2 /* arguments */
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object[] arguments
        end local 1 // java.lang.Object[] argumentValues
        end local 0 // com.oracle.truffle.api.object.DynamicObject functionObject
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  functionObject  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     1  argumentValues  [Ljava/lang/Object;
            3    4     2       arguments  [Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      functionObject  
      argumentValues  

  public static com.oracle.truffle.api.object.DynamicObject bind(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisFnObj
        start local 2 // java.lang.Object thisArg
        start local 3 // java.lang.Object[] boundArguments
         0: .line 328
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 1 /* thisFnObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 330
            aload 1 /* thisFnObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 5 /* proto */
        start local 5 // com.oracle.truffle.api.object.DynamicObject proto
         3: .line 331
            aload 4 /* context */
            aload 1 /* thisFnObj */
            aload 2 /* thisArg */
            aload 3 /* boundArguments */
            aload 5 /* proto */
            aconst_null
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.boundFunctionCreate:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/profiles/ConditionProfile;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 6 /* boundFunction */
        start local 6 // com.oracle.truffle.api.object.DynamicObject boundFunction
         4: .line 333
            lconst_0
            lstore 7 /* length */
        start local 7 // long length
         5: .line 334
            aload 1 /* thisFnObj */
            ldc "length"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            istore 9 /* targetHasLength */
        start local 9 // boolean targetHasLength
         6: .line 335
            iconst_1
            istore 10 /* mustSetLength */
        start local 10 // boolean mustSetLength
         7: .line 336
            iload 9 /* targetHasLength */
            ifeq 14
         8: .line 337
            aload 1 /* thisFnObj */
            ldc "length"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* targetLen */
        start local 11 // java.lang.Object targetLen
         9: .line 338
            aload 11 /* targetLen */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isNumber:(Ljava/lang/Object;)Z
            ifeq 14
        10: .line 339
            aload 11 /* targetLen */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toInteger:(Ljava/lang/Object;)J
            lstore 12 /* targetLenInt */
        start local 12 // long targetLenInt
        11: .line 340
            lconst_0
            lload 12 /* targetLenInt */
            aload 3 /* boundArguments */
            arraylength
            i2l
            lsub
            invokestatic java.lang.Math.max:(JJ)J
            lstore 7 /* length */
        12: .line 341
            lload 12 /* targetLenInt */
            aload 1 /* thisFnObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            i2l
            lcmp
            ifne 14
        13: .line 342
            iconst_0
            istore 10 /* mustSetLength */
        end local 12 // long targetLenInt
        end local 11 // java.lang.Object targetLen
        14: .line 346
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object[] com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject long int int
      StackMap stack:
            iload 10 /* mustSetLength */
            ifeq 16
        15: .line 347
            aload 6 /* boundFunction */
            lload 7 /* length */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longToIntOrDouble:(J)Ljava/lang/Number;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.setFunctionLength:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Number;)V
        16: .line 350
      StackMap locals:
      StackMap stack:
            aload 1 /* thisFnObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            astore 11 /* targetName */
        start local 11 // java.lang.String targetName
        17: .line 351
            aload 11 /* targetName */
            aload 1 /* thisFnObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 352
            aload 6 /* boundFunction */
            aload 11 /* targetName */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.setBoundFunctionName:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
        19: .line 354
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* boundFunction */
            areturn
        end local 11 // java.lang.String targetName
        end local 10 // boolean mustSetLength
        end local 9 // boolean targetHasLength
        end local 7 // long length
        end local 6 // com.oracle.truffle.api.object.DynamicObject boundFunction
        end local 5 // com.oracle.truffle.api.object.DynamicObject proto
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // java.lang.Object[] boundArguments
        end local 2 // java.lang.Object thisArg
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisFnObj
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0            realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0   20     1        thisFnObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   20     2          thisArg  Ljava/lang/Object;
            0   20     3   boundArguments  [Ljava/lang/Object;
            2   20     4          context  Lcom/oracle/truffle/js/runtime/JSContext;
            3   20     5            proto  Lcom/oracle/truffle/api/object/DynamicObject;
            4   20     6    boundFunction  Lcom/oracle/truffle/api/object/DynamicObject;
            5   20     7           length  J
            6   20     9  targetHasLength  Z
            7   20    10    mustSetLength  Z
            9   14    11        targetLen  Ljava/lang/Object;
           11   14    12     targetLenInt  J
           17   20    11       targetName  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      realm           
      thisFnObj       
      thisArg         
      boundArguments  

  public static com.oracle.truffle.api.object.DynamicObject boundFunctionCreate(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object[], com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.profiles.ConditionProfile, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/profiles/ConditionProfile;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject boundTargetFunction
        start local 2 // java.lang.Object boundThis
        start local 3 // java.lang.Object[] boundArguments
        start local 4 // com.oracle.truffle.api.object.DynamicObject proto
        start local 5 // com.oracle.truffle.api.profiles.ConditionProfile isAsyncProfile
        start local 6 // com.oracle.truffle.api.profiles.ConditionProfile setProtoProfile
         0: .line 359
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 1 /* boundTargetFunction */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         2: .line 362
            aload 1 /* boundTargetFunction */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isConstructor:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            istore 7 /* constructor */
        start local 7 // boolean constructor
         3: .line 363
            aload 0 /* context */
            iload 7 /* constructor */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getBoundFunctionData:(Z)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 8 /* functionData */
        start local 8 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         4: .line 364
            aload 1 /* boundTargetFunction */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isAsync:()Z
            istore 9 /* isAsync */
        start local 9 // boolean isAsync
         5: .line 365
            aload 5 /* isAsyncProfile */
            ifnonnull 6
            iload 9 /* isAsync */
            ifeq 9
            goto 7
      StackMap locals: int com.oracle.truffle.js.runtime.builtins.JSFunctionData int
      StackMap stack:
         6: aload 5 /* isAsyncProfile */
            iload 9 /* isAsync */
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 9
         7: .line 366
      StackMap locals:
      StackMap stack:
            iconst_0
            aload 1 /* boundTargetFunction */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getLength:(Lcom/oracle/truffle/api/object/DynamicObject;)I
            aload 3 /* boundArguments */
            arraylength
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 10 /* length */
        start local 10 // int length
         8: .line 367
            aload 0 /* context */
            iload 10 /* length */
            iload 7 /* constructor */
            iload 9 /* isAsync */
            aload 8 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.makeBoundFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;IZZLjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 8 /* functionData */
        end local 10 // int length
         9: .line 369
      StackMap locals:
      StackMap stack:
            aload 1 /* boundTargetFunction */
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 10 /* realm */
        start local 10 // com.oracle.truffle.js.runtime.JSRealm realm
        10: .line 370
            aload 0 /* context */
            aload 10 /* realm */
            aload 8 /* functionData */
            aload 1 /* boundTargetFunction */
            aload 2 /* boundThis */
            aload 3 /* boundArguments */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createBound:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 11 /* boundFunction */
        start local 11 // com.oracle.truffle.api.object.DynamicObject boundFunction
        11: .line 371
            aload 4 /* proto */
            aload 10 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            if_acmpeq 12
            iconst_1
            goto 13
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 12 /* needSetProto */
        start local 12 // boolean needSetProto
        14: .line 372
            aload 6 /* setProtoProfile */
            ifnonnull 15
            iload 12 /* needSetProto */
            ifeq 17
            goto 16
      StackMap locals: int
      StackMap stack:
        15: aload 6 /* setProtoProfile */
            iload 12 /* needSetProto */
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 17
        16: .line 373
      StackMap locals:
      StackMap stack:
            aload 11 /* boundFunction */
            aload 4 /* proto */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
        17: .line 375
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 18
            aload 11 /* boundFunction */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            aload 4 /* proto */
            if_acmpeq 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 376
      StackMap locals:
      StackMap stack:
            aload 11 /* boundFunction */
            areturn
        end local 12 // boolean needSetProto
        end local 11 // com.oracle.truffle.api.object.DynamicObject boundFunction
        end local 10 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 9 // boolean isAsync
        end local 8 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 7 // boolean constructor
        end local 6 // com.oracle.truffle.api.profiles.ConditionProfile setProtoProfile
        end local 5 // com.oracle.truffle.api.profiles.ConditionProfile isAsyncProfile
        end local 4 // com.oracle.truffle.api.object.DynamicObject proto
        end local 3 // java.lang.Object[] boundArguments
        end local 2 // java.lang.Object boundThis
        end local 1 // com.oracle.truffle.api.object.DynamicObject boundTargetFunction
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0              context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   19     1  boundTargetFunction  Lcom/oracle/truffle/api/object/DynamicObject;
            0   19     2            boundThis  Ljava/lang/Object;
            0   19     3       boundArguments  [Ljava/lang/Object;
            0   19     4                proto  Lcom/oracle/truffle/api/object/DynamicObject;
            0   19     5       isAsyncProfile  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            0   19     6      setProtoProfile  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            3   19     7          constructor  Z
            4   19     8         functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            5   19     9              isAsync  Z
            8    9    10               length  I
           10   19    10                realm  Lcom/oracle/truffle/js/runtime/JSRealm;
           11   19    11        boundFunction  Lcom/oracle/truffle/api/object/DynamicObject;
           14   19    12         needSetProto  Z
    MethodParameters:
                     Name  Flags
      context              
      boundTargetFunction  
      boundThis            
      boundArguments       
      proto                
      isAsyncProfile       
      setProtoProfile      

  private static com.oracle.truffle.js.runtime.builtins.JSFunctionData makeBoundFunctionData(com.oracle.truffle.js.runtime.JSContext, int, boolean, boolean, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;IZZLjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=17, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // int length
        start local 2 // boolean constructor
        start local 3 // boolean isAsync
        start local 4 // java.lang.String name
         0: .line 381
            aload 0 /* context */
         1: .line 382
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getBoundFunctionCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getBoundFunctionConstructTarget:()Lcom/oracle/truffle/api/CallTarget;
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getBoundFunctionConstructNewTarget:()Lcom/oracle/truffle/api/CallTarget;
         2: .line 383
            iload 1 /* length */
            aload 4 /* name */
            iload 2 /* constructor */
            iconst_0
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            iload 3 /* isAsync */
            iconst_0
            iconst_1
            iconst_0
            iconst_1
         3: .line 381
            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 4 // java.lang.String name
        end local 3 // boolean isAsync
        end local 2 // boolean constructor
        end local 1 // int length
        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       length  I
            0    4     2  constructor  Z
            0    4     3      isAsync  Z
            0    4     4         name  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      context      
      length       
      constructor  
      isAsync      
      name         

  private static java.lang.String getFunctionName(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisFnObj
         0: .line 388
            aload 0 /* thisFnObj */
            ldc "name"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* name */
        start local 1 // java.lang.Object name
         1: .line 389
            aload 1 /* name */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 390
            ldc ""
            astore 1 /* name */
         3: .line 392
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* name */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object name
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisFnObj
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  thisFnObj  Lcom/oracle/truffle/api/object/DynamicObject;
            1    4     1       name  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      thisFnObj  

  public static void setFunctionLength(com.oracle.truffle.api.object.DynamicObject, java.lang.Number);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Number;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject functionObj
        start local 1 // java.lang.Number length
         0: .line 397
            aload 0 /* functionObj */
            ldc "length"
            aload 1 /* length */
            iconst_0
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)Z
            pop
         1: .line 398
            return
        end local 1 // java.lang.Number length
        end local 0 // com.oracle.truffle.api.object.DynamicObject functionObj
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0  functionObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1       length  Ljava/lang/Number;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      functionObj  
      length       

  public static void setBoundFunctionName(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject boundFunction
        start local 1 // java.lang.String targetName
         0: .line 402
            aload 0 /* boundFunction */
            ldc "name"
            new java.lang.StringBuilder
            dup
            ldc "bound "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* targetName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)Z
            pop
         1: .line 403
            return
        end local 1 // java.lang.String targetName
        end local 0 // com.oracle.truffle.api.object.DynamicObject boundFunction
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0  boundFunction  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1     targetName  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      boundFunction  
      targetName     

  public static boolean isStrict(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 406
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isStrict:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isBuiltin(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 410
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isBuiltin:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isConstructor(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 414
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isConstructor:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isConstructor(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 419
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* obj */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isConstructor:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isGenerator(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 423
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isGenerator:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean needsParentFrame(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 427
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.needsParentFrame:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static int getLength(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 431
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getLength:()I
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isClassPrototypeInitialized(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 435
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getClassPrototypeField:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static boolean isBoundFunction(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 439
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isBound:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      function  

  public static boolean isAsyncFunction(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 443
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            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.api.object.DynamicObject function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      function  

  public static java.lang.Object getBoundThis(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 447
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isBoundFunction:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound.getBoundThis:()Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      function  

  public static com.oracle.truffle.api.object.DynamicObject getBoundTargetFunction(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 452
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isBoundFunction:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound.getBoundTargetFunction:()Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      function  

  public static java.lang.Object[] getBoundArguments(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 457
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isBoundFunction:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 458
      StackMap locals:
      StackMap stack:
            aload 0 /* function */
            checkcast com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound.getBoundArguments:()[Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject function
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      function  

  public static java.lang.Object getLexicalThis(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 462
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getClassPrototypeInitialized:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static java.lang.Object getClassPrototypeInitialized(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 466
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getClassPrototypeField:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 1 /* classPrototype */
        start local 1 // java.lang.Object classPrototype
         1: .line 467
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 2
            aload 1 /* classPrototype */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            if_acmpne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 468
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* classPrototype */
            areturn
        end local 1 // java.lang.Object classPrototype
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0         thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            1    3     1  classPrototype  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      thisObj  

  public static java.lang.Object getClassPrototype(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 472
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getClassPrototypeField:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            astore 1 /* classPrototype */
        start local 1 // java.lang.Object classPrototype
         1: .line 473
            aload 1 /* classPrototype */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            if_acmpne 4
         2: .line 474
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 475
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.initializeClassPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         4: .line 477
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getClassPrototypeField:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object classPrototype
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0         thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            1    5     1  classPrototype  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      thisObj  

  private static void initializeClassPrototype(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 481
            aload 0 /* thisObj */
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.setClassPrototypeField:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
         1: .line 482
            return
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  private static com.oracle.truffle.api.object.DynamicObject createPrototype(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject constructor
         0: .line 485
            aload 0 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 1 /* functionData */
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         1: .line 486
            aload 0 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         2: .line 487
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
         3: .line 488
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isGenerator:()Z
            ifne 7
         4: .line 489
            aload 3 /* context */
            aload 2 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* prototype */
        start local 4 // com.oracle.truffle.api.object.DynamicObject prototype
         5: .line 490
            aload 3 /* context */
            aload 4 /* prototype */
            aload 0 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putConstructorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 491
            aload 4 /* prototype */
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject prototype
         7: .line 493
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 8
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isGenerator:()Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 494
      StackMap locals:
      StackMap stack:
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isAsync:()Z
            ifeq 10
         9: .line 495
            aload 3 /* context */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getAsyncGeneratorObjectFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
            aload 2 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.createWithRealm:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        10: .line 497
      StackMap locals:
      StackMap stack:
            aload 3 /* context */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getGeneratorObjectFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
            aload 2 /* realm */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.createWithRealm:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.api.object.DynamicObject constructor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0   constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            1   11     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            2   11     2         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            3   11     3       context  Lcom/oracle/truffle/js/runtime/JSContext;
            5    7     4     prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      constructor  

  public static void setClassPrototype(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // java.lang.Object value
         0: .line 503
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.$assertionsDisabled:Z
            ifne 1
            aload 1 /* value */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* thisObj */
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.setClassPrototypeField:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
         2: .line 505
            return
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      thisObj  
      value    

  public static com.oracle.truffle.api.nodes.RootNode createBoundRootNode(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // boolean construct
        start local 2 // boolean newTarget
         0: .line 608
            iload 2 /* newTarget */
            ifeq 2
         1: .line 609
            new com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructNewTargetRootNode
            dup
            aload 0 /* context */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructNewTargetRootNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
            areturn
         2: .line 610
      StackMap locals:
      StackMap stack:
            iload 1 /* construct */
            ifeq 4
         3: .line 611
            new com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructRootNode
            dup
            aload 0 /* context */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructRootNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
            areturn
         4: .line 613
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.runtime.builtins.JSFunction$BoundRootNode
            dup
            aload 0 /* context */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$BoundRootNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
            areturn
        end local 2 // boolean newTarget
        end local 1 // boolean construct
        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  construct  Z
            0    5     2  newTarget  Z
    MethodParameters:
           Name  Flags
      context    
      construct  
      newTarget  

  public static com.oracle.truffle.api.object.DynamicObject createFunctionPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject objectPrototype
         0: .line 618
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 619
            aload 2 /* context */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            aload 1 /* objectPrototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSShape.createPrototypeShape:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
            astore 3 /* protoShape */
        start local 3 // com.oracle.truffle.api.object.Shape protoShape
         2: .line 620
            aload 3 /* protoShape */
            aload 2 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createEmptyFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            getstatic com.oracle.truffle.js.runtime.JSFrameUtil.NULL_MATERIALIZED_FRAME:Lcom/oracle/truffle/api/frame/MaterializedFrame;
            aload 0 /* realm */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.CLASS_PROTOTYPE_PLACEHOLDER:Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionObject.create:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/frame/MaterializedFrame;Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionObject;
            astore 4 /* proto */
        start local 4 // com.oracle.truffle.api.object.DynamicObject proto
         3: .line 621
            aload 2 /* context */
            aload 4 /* proto */
            aload 1 /* objectPrototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.setOrVerifyPrototype:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         4: .line 622
            aload 2 /* context */
            aload 4 /* proto */
            ldc "length"
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         5: .line 623
            aload 2 /* context */
            aload 4 /* proto */
            ldc "name"
            ldc ""
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         6: .line 624
            aload 4 /* proto */
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject proto
        end local 3 // com.oracle.truffle.api.object.Shape protoShape
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.api.object.DynamicObject objectPrototype
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0            realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    7     1  objectPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
            1    7     2          context  Lcom/oracle/truffle/js/runtime/JSContext;
            2    7     3       protoShape  Lcom/oracle/truffle/api/object/Shape;
            3    7     4            proto  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                 Name  Flags
      realm            
      objectPrototype  

  public static void addRestrictedFunctionProperties(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 628
            aload 1 /* obj */
            ldc "caller"
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getThrowerFunction:()Lcom/oracle/truffle/api/object/DynamicObject;
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getThrowerFunction:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putBuiltinAccessorProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 629
            aload 1 /* obj */
            ldc "arguments"
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getThrowerFunction:()Lcom/oracle/truffle/api/object/DynamicObject;
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getThrowerFunction:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putBuiltinAccessorProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         2: .line 630
            return
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    3     1    obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  
      obj    

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData createNamedEmptyFunctionData(com.oracle.truffle.js.runtime.JSContext, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // java.lang.String name
         0: .line 633
            aload 0 /* context */
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEmptyFunctionCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            iconst_0
            aload 1 /* name */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 1 // java.lang.String name
        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     name  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  
      name     

  public static com.oracle.truffle.js.runtime.builtins.JSFunctionData createEmptyFunctionData(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 637
            aload 0 /* context */
            ldc ""
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createNamedEmptyFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        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;
    MethodParameters:
         Name  Flags
      context  

  public static com.oracle.truffle.api.object.DynamicObject createNamedEmptyFunction(com.oracle.truffle.js.runtime.JSRealm, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // java.lang.String name
         0: .line 641
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* name */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createNamedEmptyFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     1   name  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      realm  
      name   

  public static com.oracle.truffle.api.object.DynamicObject createEmptyFunction(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 645
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createEmptyFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  public static void fillFunctionPrototype(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 649
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* ctx */
        start local 1 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 650
            aload 1 /* ctx */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionConstructor:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putConstructorProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
         2: .line 651
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            getstatic com.oracle.truffle.js.builtins.FunctionPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         3: .line 652
            aload 1 /* ctx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            bipush 6
            if_icmplt 5
         4: .line 653
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.addRestrictedFunctionProperties:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)V
         5: .line 655
      StackMap locals: com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
            ifeq 7
         6: .line 656
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            getstatic com.oracle.truffle.js.builtins.FunctionPrototypeBuiltins.BUILTINS_NASHORN_COMPAT:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         7: .line 658
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    8     1    ctx  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.Shape makeFunctionShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject prototype
        start local 2 // boolean isGenerator
        start local 3 // boolean isAsync
         0: .line 661
            aload 1 /* prototype */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
            astore 4 /* initialShape */
        start local 4 // com.oracle.truffle.api.object.Shape initialShape
         1: .line 662
            iload 2 /* isGenerator */
            ifeq 5
         2: .line 663
            aload 4 /* initialShape */
            invokestatic com.oracle.truffle.api.object.Shape.newBuilder:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
            iload 3 /* isAsync */
            ifeq 3
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.ASYNC_GENERATOR_FUNCTION_MARKER_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            goto 4
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.api.object.Shape
      StackMap stack: com.oracle.truffle.api.object.Shape$DerivedBuilder
         3: getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.GENERATOR_FUNCTION_MARKER_ID:Lcom/oracle/truffle/api/object/HiddenKey;
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.api.object.Shape
      StackMap stack: com.oracle.truffle.api.object.Shape$DerivedBuilder com.oracle.truffle.api.object.HiddenKey
         4: aconst_null
            iconst_0
            invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.addConstantProperty:(Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape$DerivedBuilder;
            invokevirtual com.oracle.truffle.api.object.Shape$DerivedBuilder.build:()Lcom/oracle/truffle/api/object/Shape;
            astore 4 /* initialShape */
         5: .line 665
      StackMap locals:
      StackMap stack:
            aload 4 /* initialShape */
            areturn
        end local 4 // com.oracle.truffle.api.object.Shape initialShape
        end local 3 // boolean isAsync
        end local 2 // boolean isGenerator
        end local 1 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0       context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    6     1     prototype  Lcom/oracle/truffle/api/object/DynamicObject;
            0    6     2   isGenerator  Z
            0    6     3       isAsync  Z
            1    6     4  initialShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
             Name  Flags
      context      
      prototype    
      isGenerator  
      isAsync      

  public static com.oracle.truffle.api.object.DynamicObject createFunctionConstructor(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 669
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* ctx */
        start local 1 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 670
            aload 0 /* realm */
            getstatic com.oracle.truffle.js.builtins.ConstructorBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            ldc "Function"
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.lookupFunction:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* functionConstructor */
        start local 2 // com.oracle.truffle.api.object.DynamicObject functionConstructor
         2: .line 671
            aload 1 /* ctx */
            aload 2 /* functionConstructor */
            ldc "prototype"
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         3: .line 672
            aload 2 /* functionConstructor */
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject functionConstructor
        end local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    4     1                  ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    4     2  functionConstructor  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public java.lang.String getClassName(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         0: .line 677
            ldc "Function"
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            0    1     1  object  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.String getBuiltinToStringTag(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         0: .line 682
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunction.getClassName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            0    1     1  object  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  

  public java.lang.String toDisplayStringImpl(com.oracle.truffle.api.object.DynamicObject, int, boolean, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZLcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // int depth
        start local 3 // boolean allowSideEffects
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 688
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getCallTarget:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 5 /* rn */
        start local 5 // com.oracle.truffle.api.nodes.RootNode rn
         1: .line 689
            aload 5 /* rn */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 6 /* ssect */
        start local 6 // com.oracle.truffle.api.source.SourceSection ssect
         2: .line 691
            aload 6 /* ssect */
            ifnull 3
            aload 6 /* ssect */
            invokevirtual com.oracle.truffle.api.source.SourceSection.isAvailable:()Z
            ifeq 3
            aload 6 /* ssect */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.isInternal:()Z
            ifeq 5
         3: .line 692
      StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "function "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "() { [native code] }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* source */
        start local 7 // java.lang.String source
         4: .line 693
            goto 12
        end local 7 // java.lang.String source
      StackMap locals:
      StackMap stack:
         5: iload 2 /* depth */
            ifgt 8
         6: .line 694
            new java.lang.StringBuilder
            dup
            ldc "function "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getName:(Lcom/oracle/truffle/api/object/DynamicObject;)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;
            astore 7 /* source */
        start local 7 // java.lang.String source
         7: .line 695
            goto 12
        end local 7 // java.lang.String source
         8: .line 696
      StackMap locals:
      StackMap stack:
            aload 6 /* ssect */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            sipush 200
            if_icmple 11
         9: .line 697
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 6 /* ssect */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            iconst_0
            sipush 195
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "...<omitted>...\n}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* source */
        start local 7 // java.lang.String source
        10: .line 698
            goto 12
        end local 7 // java.lang.String source
        11: .line 699
      StackMap locals:
      StackMap stack:
            aload 6 /* ssect */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 7 /* source */
        start local 7 // java.lang.String source
        12: .line 702
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* source */
            areturn
        end local 7 // java.lang.String source
        end local 6 // com.oracle.truffle.api.source.SourceSection ssect
        end local 5 // com.oracle.truffle.api.nodes.RootNode rn
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // boolean allowSideEffects
        end local 2 // int depth
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            0   13     1               obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2             depth  I
            0   13     3  allowSideEffects  Z
            0   13     4           context  Lcom/oracle/truffle/js/runtime/JSContext;
            1   13     5                rn  Lcom/oracle/truffle/api/nodes/RootNode;
            2   13     6             ssect  Lcom/oracle/truffle/api/source/SourceSection;
            4    5     7            source  Ljava/lang/String;
            7    8     7            source  Ljava/lang/String;
           10   11     7            source  Ljava/lang/String;
           12   13     7            source  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      obj               
      depth             
      allowSideEffects  
      context           

  public boolean hasOnlyShapeProperties(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 707
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSFunction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSFunction;
            0    1     1   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.CallTarget getConstructTarget(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 711
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getConstructTarget:()Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.CallTarget getConstructNewTarget(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 715
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getConstructNewTarget:()Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isJSFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 726
            aload 0 /* obj */
            instanceof com.oracle.truffle.js.runtime.builtins.JSFunctionObject
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.object.DynamicObject createGeneratorFunctionPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject constructor
         0: .line 732
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* ctx */
        start local 2 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 734
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         2: .line 735
            aload 2 /* ctx */
            aload 3 /* prototype */
            ldc "constructor"
            aload 1 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         3: .line 736
            aload 2 /* ctx */
            aload 3 /* prototype */
            ldc "prototype"
            aload 0 /* realm */
            aload 3 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createGeneratorPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 737
            aload 3 /* prototype */
            ldc "GeneratorFunction"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         5: .line 738
            aload 3 /* prototype */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 1 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    6     1  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            1    6     2          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      realm        
      constructor  

  private static com.oracle.truffle.api.object.DynamicObject createGeneratorPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject constructor
         0: .line 742
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* ctx */
        start local 2 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 744
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getIteratorPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* generatorPrototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject generatorPrototype
         2: .line 745
            aload 0 /* realm */
            aload 3 /* generatorPrototype */
            getstatic com.oracle.truffle.js.builtins.GeneratorPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         3: .line 746
            aload 2 /* ctx */
            aload 3 /* generatorPrototype */
            ldc "constructor"
            aload 1 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 747
            aload 3 /* generatorPrototype */
            ldc "Generator"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         5: .line 748
            aload 3 /* generatorPrototype */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject generatorPrototype
        end local 2 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 1 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0               realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    6     1         constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            1    6     2                 ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     3  generatorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      realm        
      constructor  

  public static com.oracle.truffle.js.runtime.builtins.JSConstructor createGeneratorFunctionConstructor(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 752
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* ctx */
        start local 1 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 754
            aload 0 /* realm */
            getstatic com.oracle.truffle.js.builtins.ConstructorBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            ldc "GeneratorFunction"
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.lookupFunction:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* constructor */
        start local 2 // com.oracle.truffle.api.object.DynamicObject constructor
         2: .line 755
            aload 2 /* constructor */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionConstructor:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
         3: .line 756
            aload 0 /* realm */
            aload 2 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createGeneratorFunctionPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         4: .line 757
            aload 1 /* ctx */
            aload 2 /* constructor */
            ldc "prototype"
            aload 3 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         5: .line 758
            new com.oracle.truffle.js.runtime.builtins.JSConstructor
            dup
            aload 2 /* constructor */
            aload 3 /* prototype */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSConstructor.<init>:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    6     1          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     2  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            4    6     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.DynamicObject createAsyncFunctionPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject constructor
         0: .line 764
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* ctx */
        start local 2 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 766
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         2: .line 767
            aload 2 /* ctx */
            aload 3 /* prototype */
            ldc "constructor"
            aload 1 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         3: .line 768
            aload 3 /* prototype */
            ldc "AsyncFunction"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         4: .line 769
            aload 3 /* prototype */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 1 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    5     1  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            1    5     2          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    5     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      realm        
      constructor  

  public static com.oracle.truffle.js.runtime.builtins.JSConstructor createAsyncFunctionConstructor(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 773
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* ctx */
        start local 1 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 775
            aload 0 /* realm */
            getstatic com.oracle.truffle.js.builtins.ConstructorBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            ldc "AsyncFunction"
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.lookupFunction:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* constructor */
        start local 2 // com.oracle.truffle.api.object.DynamicObject constructor
         2: .line 776
            aload 2 /* constructor */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionConstructor:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
         3: .line 777
            aload 0 /* realm */
            aload 2 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createAsyncFunctionPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         4: .line 778
            aload 1 /* ctx */
            aload 2 /* constructor */
            ldc "prototype"
            aload 3 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         5: .line 779
            new com.oracle.truffle.js.runtime.builtins.JSConstructor
            dup
            aload 2 /* constructor */
            aload 3 /* prototype */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSConstructor.<init>:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    6     1          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     2  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            4    6     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.DynamicObject createAsyncIteratorPrototype(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 786
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* context */
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 787
            aload 0 /* realm */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* prototype */
        start local 2 // com.oracle.truffle.api.object.DynamicObject prototype
         2: .line 788
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            getstatic com.oracle.truffle.js.runtime.JSContext$BuiltinFunctionKey.FunctionAsyncIterator:Lcom/oracle/truffle/js/runtime/JSContext$BuiltinFunctionKey;
            aload 1 /* context */
            invokedynamic apply(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/js/runtime/builtins/JSFunction.lambda$0(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData; (6)
                  (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getOrCreateBuiltinFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext$BuiltinFunctionKey;Ljava/util/function/Function;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 3 /* functionData */
        start local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         3: .line 796
            aload 0 /* realm */
            aload 3 /* functionData */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.create:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* asyncIterator */
        start local 4 // com.oracle.truffle.api.object.DynamicObject asyncIterator
         4: .line 797
            aload 1 /* context */
            aload 2 /* prototype */
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_ASYNC_ITERATOR:Lcom/oracle/truffle/js/runtime/Symbol;
            aload 4 /* asyncIterator */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefaultNotEnumerable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         5: .line 798
            aload 2 /* prototype */
            areturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject asyncIterator
        end local 3 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 2 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0          realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    6     1        context  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     2      prototype  Lcom/oracle/truffle/api/object/DynamicObject;
            3    6     3   functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            4    6     4  asyncIterator  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.DynamicObject createAsyncFromSyncIteratorPrototype(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 805
            aload 0 /* realm */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* prototype */
        start local 1 // com.oracle.truffle.api.object.DynamicObject prototype
         1: .line 806
            aload 0 /* realm */
            aload 1 /* prototype */
            getstatic com.oracle.truffle.js.builtins.AsyncFromSyncIteratorPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         2: .line 807
            aload 1 /* prototype */
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0      realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    3     1  prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.DynamicObject createAsyncGeneratorFunctionPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject constructor
         0: .line 811
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* ctx */
        start local 2 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 813
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         2: .line 814
            aload 2 /* ctx */
            aload 3 /* prototype */
            ldc "constructor"
            aload 1 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         3: .line 815
            aload 2 /* ctx */
            aload 3 /* prototype */
            ldc "prototype"
            aload 0 /* realm */
            aload 3 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createAsyncGeneratorPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 816
            aload 3 /* prototype */
            ldc "AsyncGeneratorFunction"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         5: .line 817
            aload 3 /* prototype */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 1 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    6     1  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            1    6     2          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      realm        
      constructor  

  private static com.oracle.truffle.api.object.DynamicObject createAsyncGeneratorPrototype(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject constructor
         0: .line 821
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* ctx */
        start local 2 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 823
            aload 0 /* realm */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getAsyncIteratorPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         2: .line 824
            aload 0 /* realm */
            aload 3 /* prototype */
            getstatic com.oracle.truffle.js.builtins.AsyncGeneratorPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         3: .line 825
            aload 2 /* ctx */
            aload 3 /* prototype */
            ldc "constructor"
            aload 1 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 826
            aload 3 /* prototype */
            ldc "AsyncGenerator"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putToStringTag:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
         5: .line 827
            aload 3 /* prototype */
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 1 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    6     1  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            1    6     2          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
             Name  Flags
      realm        
      constructor  

  public static com.oracle.truffle.js.runtime.builtins.JSConstructor createAsyncGeneratorFunctionConstructor(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/js/runtime/builtins/JSConstructor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 831
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* ctx */
        start local 1 // com.oracle.truffle.js.runtime.JSContext ctx
         1: .line 833
            aload 0 /* realm */
            getstatic com.oracle.truffle.js.builtins.ConstructorBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            ldc "AsyncGeneratorFunction"
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.lookupFunction:(Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* constructor */
        start local 2 // com.oracle.truffle.api.object.DynamicObject constructor
         2: .line 834
            aload 2 /* constructor */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getFunctionConstructor:()Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            pop
         3: .line 835
            aload 0 /* realm */
            aload 2 /* constructor */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createAsyncGeneratorFunctionPrototype:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* prototype */
        start local 3 // com.oracle.truffle.api.object.DynamicObject prototype
         4: .line 836
            aload 1 /* ctx */
            aload 2 /* constructor */
            ldc "prototype"
            aload 3 /* prototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         5: .line 837
            new com.oracle.truffle.js.runtime.builtins.JSConstructor
            dup
            aload 2 /* constructor */
            aload 3 /* prototype */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSConstructor.<init>:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
            areturn
        end local 3 // com.oracle.truffle.api.object.DynamicObject prototype
        end local 2 // com.oracle.truffle.api.object.DynamicObject constructor
        end local 1 // com.oracle.truffle.js.runtime.JSContext ctx
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    6     1          ctx  Lcom/oracle/truffle/js/runtime/JSContext;
            2    6     2  constructor  Lcom/oracle/truffle/api/object/DynamicObject;
            4    6     3    prototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.DynamicObject createEnumerateIteratorPrototype(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 843
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getIteratorPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* iteratorPrototype */
        start local 1 // com.oracle.truffle.api.object.DynamicObject iteratorPrototype
         1: .line 844
            aload 0 /* realm */
            aload 1 /* iteratorPrototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* enumerateIteratorPrototype */
        start local 2 // com.oracle.truffle.api.object.DynamicObject enumerateIteratorPrototype
         2: .line 845
            aload 0 /* realm */
            aload 2 /* enumerateIteratorPrototype */
            getstatic com.oracle.truffle.js.builtins.EnumerateIteratorPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         3: .line 846
            aload 2 /* enumerateIteratorPrototype */
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject enumerateIteratorPrototype
        end local 1 // com.oracle.truffle.api.object.DynamicObject iteratorPrototype
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    4     0                       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    4     1           iteratorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
            2    4     2  enumerateIteratorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.Shape makeInitialEnumerateIteratorShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject enumerateIteratorPrototype
         0: .line 850
            aload 1 /* enumerateIteratorPrototype */
            getstatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSOrdinary;
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject enumerateIteratorPrototype
        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  enumerateIteratorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                            Name  Flags
      context                     
      enumerateIteratorPrototype  

  public static com.oracle.truffle.api.object.DynamicObject createForInIteratorPrototype(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 854
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getIteratorPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* iteratorPrototype */
        start local 1 // com.oracle.truffle.api.object.DynamicObject iteratorPrototype
         1: .line 855
            aload 0 /* realm */
            aload 1 /* iteratorPrototype */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createOrdinaryPrototypeObject:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 2 /* enumerateIteratorPrototype */
        start local 2 // com.oracle.truffle.api.object.DynamicObject enumerateIteratorPrototype
         2: .line 856
            aload 0 /* realm */
            aload 2 /* enumerateIteratorPrototype */
            getstatic com.oracle.truffle.js.builtins.ForInIteratorPrototypeBuiltins.BUILTINS:Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putFunctionsFromContainer:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/builtins/JSBuiltinsContainer;)V
         3: .line 857
            aload 2 /* enumerateIteratorPrototype */
            areturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject enumerateIteratorPrototype
        end local 1 // com.oracle.truffle.api.object.DynamicObject iteratorPrototype
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    4     0                       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    4     1           iteratorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
            2    4     2  enumerateIteratorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
       Name  Flags
      realm  

  public static com.oracle.truffle.api.object.Shape makeInitialForInIteratorShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.object.DynamicObject iteratorPrototype
         0: .line 861
            aload 1 /* iteratorPrototype */
            getstatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSOrdinary;
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject iteratorPrototype
        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  iteratorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
                   Name  Flags
      context            
      iteratorPrototype  

  public static com.oracle.truffle.api.nodes.RootNode getFrameRootNode(com.oracle.truffle.api.frame.FrameInstance);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameInstance;)Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.frame.FrameInstance frameInstance
         0: .line 865
            aload 0 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* callNode */
        start local 1 // com.oracle.truffle.api.nodes.Node callNode
         1: .line 866
            aload 1 /* callNode */
            ifnull 3
         2: .line 867
            aload 1 /* callNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            areturn
         3: .line 869
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 0 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            astore 2 /* callTarget */
        start local 2 // com.oracle.truffle.api.CallTarget callTarget
         4: .line 870
            aload 2 /* callTarget */
            instanceof com.oracle.truffle.api.RootCallTarget
            ifeq 6
         5: .line 871
            aload 2 /* callTarget */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            areturn
         6: .line 873
      StackMap locals: com.oracle.truffle.api.CallTarget
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.api.CallTarget callTarget
        end local 1 // com.oracle.truffle.api.nodes.Node callNode
        end local 0 // com.oracle.truffle.api.frame.FrameInstance frameInstance
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  frameInstance  Lcom/oracle/truffle/api/frame/FrameInstance;
            1    7     1       callNode  Lcom/oracle/truffle/api/nodes/Node;
            4    7     2     callTarget  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
               Name  Flags
      frameInstance  

  public static com.oracle.truffle.api.source.SourceSection createBuiltinSourceSection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 877
            ldc "js"
            ldc ""
            aload 0 /* name */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            iconst_1
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.internal:(Z)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.createUnavailableSection:()Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static boolean isBuiltinSourceSection(com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 881
            aload 0 /* sourceSection */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.BUILTIN_SOURCE_SECTION:Lcom/oracle/truffle/api/source/SourceSection;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.source.SourceSection sourceSection
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
               Name  Flags
      sourceSection  

  public static boolean isBuiltinThatShouldNotAppearInStackTrace(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 885
            aload 1 /* function */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getApplyFunctionObject:()Ljava/lang/Object;
            if_acmpeq 3
            aload 1 /* function */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getCallFunctionObject:()Ljava/lang/Object;
            if_acmpeq 3
            aload 1 /* function */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getReflectApplyFunctionObject:()Ljava/lang/Object;
            if_acmpeq 3
         1: .line 886
            aload 1 /* function */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getReflectConstructFunctionObject:()Ljava/lang/Object;
            if_acmpeq 3
         2: .line 885
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject function
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0     realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    4     1  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      realm     
      function  

  public static boolean isStrictBuiltin(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 999
            aload 0 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 1 /* functionData */
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         1: .line 1000
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         2: .line 1001
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getArrayPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 3 /* desc */
        start local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         3: .line 1002
            aload 3 /* desc */
            ifnull 4
            aload 3 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isDataDescriptor:()Z
            ifeq 4
            aload 3 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
            aload 0 /* function */
            if_acmpne 4
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.api.object.DynamicObject function
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0      function  Lcom/oracle/truffle/api/object/DynamicObject;
            1    5     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            2    5     2         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            3    5     3          desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    MethodParameters:
          Name  Flags
      function  

  private static com.oracle.truffle.js.runtime.builtins.JSFunctionData lambda$0(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=2, args_size=2
        start local 1 // com.oracle.truffle.js.runtime.JSContext c
         0: .line 789
            aload 0
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.js.runtime.builtins.JSFunction$1
            dup
            aload 0
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            aconst_null
            aconst_null
            invokespecial com.oracle.truffle.js.runtime.builtins.JSFunction$1.<init>:(Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/frame/FrameDescriptor;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
         1: .line 794
            iconst_0
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_ASYNC_ITERATOR:Lcom/oracle/truffle/js/runtime/Symbol;
            invokevirtual com.oracle.truffle.js.runtime.Symbol.toFunctionNameString:()Ljava/lang/String;
         2: .line 789
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.createCallOnly:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.JSContext c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     c  Lcom/oracle/truffle/js/runtime/JSContext;
}
SourceFile: "JSFunction.java"
NestMembers:
  com.oracle.truffle.js.runtime.builtins.JSFunction$1  com.oracle.truffle.js.runtime.builtins.JSFunction$2  com.oracle.truffle.js.runtime.builtins.JSFunction$ArgumentsProxyProperty  com.oracle.truffle.js.runtime.builtins.JSFunction$ArgumentsProxyProperty$1  com.oracle.truffle.js.runtime.builtins.JSFunction$AsyncGeneratorState  com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructNewTargetRootNode  com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructRootNode  com.oracle.truffle.js.runtime.builtins.JSFunction$BoundRootNode  com.oracle.truffle.js.runtime.builtins.JSFunction$CallerProxyProperty  com.oracle.truffle.js.runtime.builtins.JSFunction$CallerProxyProperty$1  com.oracle.truffle.js.runtime.builtins.JSFunction$ClassPrototypeProxyProperty  com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionLengthPropertyProxy  com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionNamePropertyProxy  com.oracle.truffle.js.runtime.builtins.JSFunction$GeneratorState
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final DerivedBuilder = com.oracle.truffle.api.object.Shape$DerivedBuilder of com.oracle.truffle.api.object.Shape
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public final BuiltinFunctionKey = com.oracle.truffle.js.runtime.JSContext$BuiltinFunctionKey of com.oracle.truffle.js.runtime.JSContext
  com.oracle.truffle.js.runtime.builtins.JSFunction$1
  public ArgumentsProxyProperty = com.oracle.truffle.js.runtime.builtins.JSFunction$ArgumentsProxyProperty of com.oracle.truffle.js.runtime.builtins.JSFunction
  public final AsyncGeneratorState = com.oracle.truffle.js.runtime.builtins.JSFunction$AsyncGeneratorState of com.oracle.truffle.js.runtime.builtins.JSFunction
  final BoundConstructNewTargetRootNode = com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructNewTargetRootNode of com.oracle.truffle.js.runtime.builtins.JSFunction
  final BoundConstructRootNode = com.oracle.truffle.js.runtime.builtins.JSFunction$BoundConstructRootNode of com.oracle.truffle.js.runtime.builtins.JSFunction
  BoundRootNode = com.oracle.truffle.js.runtime.builtins.JSFunction$BoundRootNode of com.oracle.truffle.js.runtime.builtins.JSFunction
  public CallerProxyProperty = com.oracle.truffle.js.runtime.builtins.JSFunction$CallerProxyProperty of com.oracle.truffle.js.runtime.builtins.JSFunction
  public final ClassPrototypeProxyProperty = com.oracle.truffle.js.runtime.builtins.JSFunction$ClassPrototypeProxyProperty of com.oracle.truffle.js.runtime.builtins.JSFunction
  public FunctionLengthPropertyProxy = com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionLengthPropertyProxy of com.oracle.truffle.js.runtime.builtins.JSFunction
  public FunctionNamePropertyProxy = com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionNamePropertyProxy of com.oracle.truffle.js.runtime.builtins.JSFunction
  public final GeneratorState = com.oracle.truffle.js.runtime.builtins.JSFunction$GeneratorState of com.oracle.truffle.js.runtime.builtins.JSFunction
  public final Bound = com.oracle.truffle.js.runtime.builtins.JSFunctionObject$Bound of com.oracle.truffle.js.runtime.builtins.JSFunctionObject
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles