public class com.oracle.truffle.js.nodes.function.InitFunctionNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.function.InitFunctionNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  private final com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData;
    descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private com.oracle.truffle.api.object.DynamicObjectLibrary setPrototypeNode;
    descriptor: Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.object.DynamicObjectLibrary setLengthNode;
    descriptor: Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.object.DynamicObjectLibrary setNameNode;
    descriptor: Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.object.DynamicObjectLibrary setArgumentsNode;
    descriptor: Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.object.DynamicObjectLibrary setCallerNode;
    descriptor: Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

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

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

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 56
            ldc Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.nodes.function.InitFunctionNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.runtime.JSContext, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=13, args_size=8
        start local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
        start local 3 // boolean strictProperties
        start local 4 // boolean isConstructor
        start local 5 // boolean isBound
        start local 6 // boolean isGenerator
        start local 7 // boolean prototypeNotWritable
         0: .line 70
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 71
            aload 0 /* this */
            aload 1 /* functionData */
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
         2: .line 72
            aload 0 /* this */
            aload 2 /* context */
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         3: .line 73
            aload 0 /* this */
            iload 3 /* strictProperties */
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.strictProperties:Z
         4: .line 74
            iload 4 /* isConstructor */
            ifeq 5
            iload 5 /* isBound */
            ifeq 6
      StackMap locals: com.oracle.truffle.js.nodes.function.InitFunctionNode com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.js.runtime.JSContext int int int int int
      StackMap stack:
         5: iload 6 /* isGenerator */
            ifne 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 8 /* hasPrototype */
        start local 8 // boolean hasPrototype
         8: .line 75
            iload 8 /* hasPrototype */
            ifeq 15
         9: .line 76
            iload 7 /* prototypeNotWritable */
            ifeq 10
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            goto 11
      StackMap locals: int
      StackMap stack:
        10: invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableWritable:()I
      StackMap locals:
      StackMap stack: int
        11: istore 9 /* prototypeAttributes */
        start local 9 // int prototypeAttributes
        12: .line 77
            aload 0 /* this */
            iload 9 /* prototypeAttributes */
            bipush 16
            ior
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.prototypeFlags:I
        13: .line 78
            aload 0 /* this */
            ldc "prototype"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createDispatched:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setPrototypeNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
        end local 9 // int prototypeAttributes
        14: .line 79
            goto 16
        15: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.prototypeFlags:I
        16: .line 83
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            bipush 6
            if_icmpge 17
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            goto 18
      StackMap locals:
      StackMap stack:
        17: invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
      StackMap locals:
      StackMap stack: int
        18: istore 9 /* lengthAttributes */
        start local 9 // int lengthAttributes
        19: .line 84
            aload 0 /* this */
            iload 9 /* lengthAttributes */
            bipush 16
            ior
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.lengthFlags:I
        20: .line 85
            aload 0 /* this */
            ldc "length"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createDispatched:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setLengthNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
        21: .line 87
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.configurableNotEnumerableNotWritable:()I
            istore 10 /* nameAttributes */
        start local 10 // int nameAttributes
        22: .line 88
            aload 0 /* this */
            iload 10 /* nameAttributes */
            bipush 16
            ior
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.nameFlags:I
        23: .line 89
            aload 0 /* this */
            ldc "name"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createDispatched:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setNameNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
        24: .line 91
            iconst_0
            istore 11 /* argumentsCaller */
        start local 11 // boolean argumentsCaller
        25: .line 92
            iconst_0
            istore 12 /* argumentsCallerAttributes */
        start local 12 // int argumentsCallerAttributes
        26: .line 93
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            bipush 6
            if_icmplt 31
        27: .line 94
            iload 3 /* strictProperties */
            ifne 34
        28: .line 95
            iconst_1
            istore 11 /* argumentsCaller */
        29: .line 96
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerableNotWritable:()I
            istore 12 /* argumentsCallerAttributes */
        30: .line 98
            goto 34
        31: .line 99
      StackMap locals: com.oracle.truffle.js.nodes.function.InitFunctionNode com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.js.runtime.JSContext int int int int int int int int int int
      StackMap stack:
            iload 3 /* strictProperties */
            ifeq 34
        32: .line 100
            iconst_1
            istore 11 /* argumentsCaller */
        33: .line 101
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.notConfigurableNotEnumerable:()I
            bipush 8
            ior
            istore 12 /* argumentsCallerAttributes */
        34: .line 104
      StackMap locals:
      StackMap stack:
            iload 11 /* argumentsCaller */
            ifeq 37
        35: .line 105
            aload 0 /* this */
            ldc "arguments"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createDispatched:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setArgumentsNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
        36: .line 106
            aload 0 /* this */
            ldc "caller"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.createDispatched:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setCallerNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
        37: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 12 /* argumentsCallerAttributes */
            putfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
        38: .line 109
            return
        end local 12 // int argumentsCallerAttributes
        end local 11 // boolean argumentsCaller
        end local 10 // int nameAttributes
        end local 9 // int lengthAttributes
        end local 8 // boolean hasPrototype
        end local 7 // boolean prototypeNotWritable
        end local 6 // boolean isGenerator
        end local 5 // boolean isBound
        end local 4 // boolean isConstructor
        end local 3 // boolean strictProperties
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   39     0                       this  Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
            0   39     1               functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0   39     2                    context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   39     3           strictProperties  Z
            0   39     4              isConstructor  Z
            0   39     5                    isBound  Z
            0   39     6                isGenerator  Z
            0   39     7       prototypeNotWritable  Z
            8   39     8               hasPrototype  Z
           12   14     9        prototypeAttributes  I
           19   39     9           lengthAttributes  I
           22   39    10             nameAttributes  I
           25   39    11            argumentsCaller  Z
           26   39    12  argumentsCallerAttributes  I
    MethodParameters:
                      Name  Flags
      functionData          
      context               
      strictProperties      
      isConstructor         
      isBound               
      isGenerator           
      prototypeNotWritable  

  protected void <init>(com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 112
            aload 0 /* this */
            aload 1 /* functionData */
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.hasStrictFunctionProperties:()Z
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isConstructor:()Z
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isBound:()Z
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isGenerator:()Z
         1: .line 113
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isPrototypeNotWritable:()Z
            invokespecial com.oracle.truffle.js.nodes.function.InitFunctionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZ)V
         2: .line 114
            getstatic com.oracle.truffle.js.nodes.function.InitFunctionNode.$assertionsDisabled:Z
            ifne 3
            aload 1 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isBuiltin:()Z
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 115
      StackMap locals: com.oracle.truffle.js.nodes.function.InitFunctionNode com.oracle.truffle.js.runtime.builtins.JSFunctionData
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
            0    4     1  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
              Name  Flags
      functionData  

  public static com.oracle.truffle.js.nodes.function.InitFunctionNode create(com.oracle.truffle.js.runtime.JSContext, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZ)Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // boolean strictProperties
        start local 2 // boolean isConstructor
        start local 3 // boolean isBound
        start local 4 // boolean isGenerator
        start local 5 // boolean prototypeNotWritable
         0: .line 118
            new com.oracle.truffle.js.nodes.function.InitFunctionNode
            dup
            aconst_null
            aload 0 /* context */
            iload 1 /* strictProperties */
            iload 2 /* isConstructor */
            iload 3 /* isBound */
            iload 4 /* isGenerator */
            iload 5 /* prototypeNotWritable */
            invokespecial com.oracle.truffle.js.nodes.function.InitFunctionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZ)V
            areturn
        end local 5 // boolean prototypeNotWritable
        end local 4 // boolean isGenerator
        end local 3 // boolean isBound
        end local 2 // boolean isConstructor
        end local 1 // boolean strictProperties
        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      strictProperties  Z
            0    1     2         isConstructor  Z
            0    1     3               isBound  Z
            0    1     4           isGenerator  Z
            0    1     5  prototypeNotWritable  Z
    MethodParameters:
                      Name  Flags
      context               
      strictProperties      
      isConstructor         
      isBound               
      isGenerator           
      prototypeNotWritable  

  public static com.oracle.truffle.js.nodes.function.InitFunctionNode create(com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 122
            new com.oracle.truffle.js.nodes.function.InitFunctionNode
            dup
            aload 0 /* functionData */
            invokespecial com.oracle.truffle.js.nodes.function.InitFunctionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
            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 final com.oracle.truffle.api.object.DynamicObject execute(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject function
         0: .line 126
            aload 0 /* this */
            aload 1 /* function */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getLength:()I
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.function.InitFunctionNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject function
        end local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
            0    1     1  function  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
          Name  Flags
      function  

  public final com.oracle.truffle.api.object.DynamicObject execute(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject function
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
         0: .line 130
            aload 0 /* this */
            aload 1 /* function */
            aload 2 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getLength:()I
            aload 2 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.function.InitFunctionNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 1 // com.oracle.truffle.api.object.DynamicObject function
        end local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
            0    1     1      function  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
    MethodParameters:
              Name  Flags
      function      
      functionData  

  public final com.oracle.truffle.api.object.DynamicObject execute(com.oracle.truffle.api.object.DynamicObject, int, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject function
        start local 2 // int length
        start local 3 // java.lang.String name
         0: .line 135
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setLengthNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "length"
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.LENGTH_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.lengthFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         1: .line 136
            getstatic com.oracle.truffle.js.nodes.function.InitFunctionNode.$assertionsDisabled:Z
            ifne 2
            aload 1 /* 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
            ifne 2
            iload 2 /* length */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.LENGTH_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 1 /* function */
            invokeinterface com.oracle.truffle.js.runtime.objects.PropertyProxy.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setNameNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "name"
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.NAME_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.nameFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         3: .line 140
            getstatic com.oracle.truffle.js.nodes.function.InitFunctionNode.$assertionsDisabled:Z
            ifne 4
            aload 1 /* 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
            ifne 4
            aload 3 /* name */
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.NAME_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 1 /* function */
            invokeinterface com.oracle.truffle.js.runtime.objects.PropertyProxy.get:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setPrototypeNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            ifnull 6
         5: .line 143
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setPrototypeNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "prototype"
            getstatic com.oracle.truffle.js.runtime.builtins.JSFunction.PROTOTYPE_PROXY:Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.prototypeFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
         6: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            bipush 6
            if_icmplt 15
         7: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.strictProperties:Z
            ifne 19
         8: .line 148
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionV8CompatibilityMode:()Z
            ifeq 12
         9: .line 149
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setArgumentsNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "arguments"
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getArgumentsPropertyProxy:()Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
            bipush 16
            ior
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        10: .line 150
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setCallerNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "caller"
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getCallerPropertyProxy:()Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
            bipush 16
            ior
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        11: .line 151
            goto 19
        12: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setArgumentsNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "arguments"
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        13: .line 153
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setCallerNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "caller"
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        14: .line 156
            goto 19
        15: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.strictProperties:Z
            ifeq 19
        16: .line 158
            aload 1 /* function */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getThrowerAccessor:()Lcom/oracle/truffle/js/runtime/objects/Accessor;
            astore 4 /* throwerAccessor */
        start local 4 // com.oracle.truffle.js.runtime.objects.Accessor throwerAccessor
        17: .line 159
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setArgumentsNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "arguments"
            aload 4 /* throwerAccessor */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putWithFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        18: .line 160
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.setCallerNode:Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 1 /* function */
            ldc "caller"
            aload 4 /* throwerAccessor */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.InitFunctionNode.argumentsCallerFlags:I
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putWithFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
        end local 4 // com.oracle.truffle.js.runtime.objects.Accessor throwerAccessor
        19: .line 163
      StackMap locals:
      StackMap stack:
            aload 1 /* function */
            areturn
        end local 3 // java.lang.String name
        end local 2 // int length
        end local 1 // com.oracle.truffle.api.object.DynamicObject function
        end local 0 // com.oracle.truffle.js.nodes.function.InitFunctionNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lcom/oracle/truffle/js/nodes/function/InitFunctionNode;
            0   20     1         function  Lcom/oracle/truffle/api/object/DynamicObject;
            0   20     2           length  I
            0   20     3             name  Ljava/lang/String;
           17   19     4  throwerAccessor  Lcom/oracle/truffle/js/runtime/objects/Accessor;
    MethodParameters:
          Name  Flags
      function  
      length    
      name      
}
SourceFile: "InitFunctionNode.java"
InnerClasses:
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node