public class com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode extends com.oracle.truffle.js.nodes.JavaScriptNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptNode
{
  private final com.oracle.truffle.trufflenode.GraalJSAccess graalAccess;
    descriptor: Lcom/oracle/truffle/trufflenode/GraalJSAccess;
    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 final com.oracle.truffle.trufflenode.info.FunctionTemplate functionTemplate;
    descriptor: Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.trufflenode.info.FunctionTemplate signature;
    descriptor: Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.trufflenode.info.ObjectTemplate instanceTemplate;
    descriptor: Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private final com.oracle.truffle.api.profiles.BranchProfile errorBranch;
    descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.profiles.ConditionProfile isTemplate;
    descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.profiles.ConditionProfile eightOrLessArgs;
    descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.profiles.ConditionProfile argumentLengthTwo;
    descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final long functionPointer;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final com.oracle.truffle.trufflenode.node.ValueTypeNode[] valueTypeNodes;
    descriptor: [Lcom/oracle/truffle/trufflenode/node/ValueTypeNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Children()

  private final com.oracle.truffle.trufflenode.node.FlattenNode[] flattenNodes;
    descriptor: [Lcom/oracle/truffle/trufflenode/node/FlattenNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Children()

  private static final boolean USE_TEMPLATE_NODES;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private com.oracle.truffle.trufflenode.node.ObjectTemplateNode instanceTemplateNode;
    descriptor: Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.PropertySetNode setConstructorTemplateNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.PropertyGetNode getConstructorTemplateNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private static int sourceSectionCounter;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  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 69
            ldc Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            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.trufflenode.node.ExecuteNativeFunctionNode.$assertionsDisabled:Z
         3: .line 115
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.trufflenode.GraalJSAccess, com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.trufflenode.info.FunctionTemplate, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/trufflenode/GraalJSAccess;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;ZZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // com.oracle.truffle.trufflenode.GraalJSAccess graalAccess
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
        start local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
        start local 4 // boolean isNew
        start local 5 // boolean isNewTarget
         0: .line 97
            aload 0 /* this */
            invokestatic com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.createSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.<init>:(Lcom/oracle/truffle/api/source/SourceSection;)V
         1: .line 79
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
         2: .line 80
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isTemplate:Lcom/oracle/truffle/api/profiles/ConditionProfile;
         3: .line 81
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.eightOrLessArgs:Lcom/oracle/truffle/api/profiles/ConditionProfile;
         4: .line 82
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.argumentLengthTwo:Lcom/oracle/truffle/api/profiles/ConditionProfile;
         5: .line 98
            aload 0 /* this */
            aload 1 /* graalAccess */
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.graalAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
         6: .line 99
            aload 0 /* this */
            aload 2 /* context */
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         7: .line 100
            aload 0 /* this */
            aload 3 /* template */
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.functionTemplate:Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
         8: .line 101
            aload 0 /* this */
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getSignature:()Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.signature:Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
         9: .line 102
            aload 0 /* this */
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getInstanceTemplate:()Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplate:Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
        10: .line 103
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplate:Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            invokevirtual com.oracle.truffle.trufflenode.info.ObjectTemplate.hasPropertyHandler:()Z
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.hasPropertyHandler:Z
        11: .line 104
            aload 0 /* this */
            iload 4 /* isNew */
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNew:Z
        12: .line 105
            aload 0 /* this */
            iload 5 /* isNewTarget */
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNewTarget:Z
        13: .line 106
            aload 0 /* this */
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getID:()I
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
        14: .line 107
            aload 0 /* this */
            aload 3 /* template */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getFunctionPointer:()J
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.functionPointer:J
        15: .line 109
            aload 0 /* this */
            bipush 8
            anewarray com.oracle.truffle.trufflenode.node.ValueTypeNode
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.valueTypeNodes:[Lcom/oracle/truffle/trufflenode/node/ValueTypeNode;
        16: .line 110
            aload 0 /* this */
            bipush 6
            anewarray com.oracle.truffle.trufflenode.node.FlattenNode
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flattenNodes:[Lcom/oracle/truffle/trufflenode/node/FlattenNode;
        17: .line 111
            return
        end local 5 // boolean isNewTarget
        end local 4 // boolean isNew
        end local 3 // com.oracle.truffle.trufflenode.info.FunctionTemplate template
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.trufflenode.GraalJSAccess graalAccess
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0   18     1  graalAccess  Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            0   18     2      context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   18     3     template  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            0   18     4        isNew  Z
            0   18     5  isNewTarget  Z
    MethodParameters:
             Name  Flags
      graalAccess  
      context      
      template     
      isNew        
      isNewTarget  

  private static com.oracle.truffle.api.source.SourceSection createSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 118
            ldc "js"
            ldc ""
            new java.lang.StringBuilder
            dup
            ldc "<native$"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.sourceSectionCounter:I
            iconst_1
            iadd
            dup
            putstatic com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.sourceSectionCounter:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)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
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Class tag
         0: .line 123
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            if_acmpne 2
         1: .line 124
            iconst_1
            ireturn
         2: .line 125
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            if_acmpne 4
         3: .line 126
            iconst_1
            ireturn
         4: .line 128
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    5     1   tag  Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
    MethodParameters:
      Name  Flags
      tag   

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=18, locals=22, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 133
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
            astore 2 /* arguments */
        start local 2 // java.lang.Object[] arguments
         1: .line 134
            aload 2 /* arguments */
            iconst_0
            aaload
            astore 3 /* thisObject */
        start local 3 // java.lang.Object thisObject
         2: .line 135
            aload 1 /* frame */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.getFunctionObject:(Lcom/oracle/truffle/api/frame/Frame;)Lcom/oracle/truffle/api/object/DynamicObject;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 4 /* realm */
        start local 4 // com.oracle.truffle.js.runtime.JSRealm realm
         3: .line 136
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNew:Z
            ifeq 10
         4: .line 137
            aload 3 /* thisObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* thisDynamicObject */
        start local 5 // com.oracle.truffle.api.object.DynamicObject thisDynamicObject
         5: .line 138
            aload 0 /* this */
            aload 1 /* frame */
            aload 5 /* thisDynamicObject */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.objectTemplateInstantiate:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSRealm;)V
         6: .line 139
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.hasPropertyHandler:Z
            ifeq 8
         7: .line 140
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.graalAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 4 /* realm */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplate:Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            aload 5 /* thisDynamicObject */
            iconst_0
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.propertyHandlerInstantiate:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Lcom/oracle/truffle/api/object/DynamicObject;Z)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* thisObject */
         8: .line 142
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 0 /* this */
            aload 5 /* thisDynamicObject */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.setConstructorTemplate:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        end local 5 // com.oracle.truffle.api.object.DynamicObject thisDynamicObject
         9: .line 143
            goto 12
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.signature:Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            ifnull 12
        11: .line 144
            aload 0 /* this */
            aload 3 /* thisObject */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.checkConstructorTemplate:(Ljava/lang/Object;)V
        12: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNewTarget:Z
            ifeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 6 /* offset */
        start local 6 // int offset
        15: .line 148
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNew:Z
            ifeq 17
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNewTarget:Z
            ifeq 16
            aload 2 /* arguments */
            iconst_2
            aaload
            goto 18
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int
      StackMap stack:
        16: aload 2 /* arguments */
            iconst_1
            aaload
            goto 18
      StackMap locals:
      StackMap stack:
        17: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
        18: astore 7 /* newTarget */
        start local 7 // java.lang.Object newTarget
        19: .line 149
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isTemplate:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.functionPointer:J
            lconst_0
            lcmp
            ifne 20
            iconst_1
            goto 21
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int java.lang.Object
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
        20: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int java.lang.Object
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
        21: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 24
        22: .line 150
            aload 3 /* thisObject */
            astore 5 /* result */
        start local 5 // java.lang.Object result
        23: .line 151
            goto 72
        end local 5 // java.lang.Object result
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.eightOrLessArgs:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 2 /* arguments */
            arraylength
            bipush 8
            iload 6 /* offset */
            iadd
            if_icmpgt 25
            iconst_1
            goto 26
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
        25: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int java.lang.Object
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
        26: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 71
        27: .line 152
            aload 0 /* this */
            iconst_0
            aload 3 /* thisObject */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 8 /* thisType */
        start local 8 // int thisType
        28: .line 153
            aload 2 /* arguments */
            iconst_1
            aaload
            astore 9 /* calleeObject */
        start local 9 // java.lang.Object calleeObject
        29: .line 154
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.argumentLengthTwo:Lcom/oracle/truffle/api/profiles/ConditionProfile;
            aload 2 /* arguments */
            arraylength
            iconst_2
            iload 6 /* offset */
            iadd
            if_icmpne 30
            iconst_1
            goto 31
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int java.lang.Object int java.lang.Object
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
        30: iconst_0
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int java.lang.Object int java.lang.Object
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
        31: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 34
        32: .line 155
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction0:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        33: .line 156
            goto 72
        end local 5 // java.lang.Object result
        34: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.graalAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.resetSharedBuffer:()V
        35: .line 158
            aload 0 /* this */
            iconst_0
            aload 2 /* arguments */
            iconst_2
            iload 6 /* offset */
            iadd
            aaload
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flatten:(ILjava/lang/Object;)Ljava/lang/Object;
            astore 10 /* argument1 */
        start local 10 // java.lang.Object argument1
        36: .line 159
            aload 0 /* this */
            iconst_2
            aload 10 /* argument1 */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 11 /* argument1Type */
        start local 11 // int argument1Type
        37: .line 160
            aload 2 /* arguments */
            arraylength
            iconst_3
            iload 6 /* offset */
            iadd
            if_icmpne 40
        38: .line 161
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 10 /* argument1 */
            iload 11 /* argument1Type */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction1:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        39: .line 162
            goto 72
        end local 5 // java.lang.Object result
        40: .line 163
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            aload 2 /* arguments */
            iconst_3
            iload 6 /* offset */
            iadd
            aaload
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flatten:(ILjava/lang/Object;)Ljava/lang/Object;
            astore 12 /* argument2 */
        start local 12 // java.lang.Object argument2
        41: .line 164
            aload 0 /* this */
            iconst_3
            aload 12 /* argument2 */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 13 /* argument2Type */
        start local 13 // int argument2Type
        42: .line 165
            aload 2 /* arguments */
            arraylength
            iconst_4
            iload 6 /* offset */
            iadd
            if_icmpne 45
        43: .line 166
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 10 /* argument1 */
            iload 11 /* argument1Type */
            aload 12 /* argument2 */
            iload 13 /* argument2Type */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction2:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        44: .line 167
            goto 72
        end local 5 // java.lang.Object result
        45: .line 168
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            iconst_2
            aload 2 /* arguments */
            iconst_4
            iload 6 /* offset */
            iadd
            aaload
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flatten:(ILjava/lang/Object;)Ljava/lang/Object;
            astore 14 /* argument3 */
        start local 14 // java.lang.Object argument3
        46: .line 169
            aload 0 /* this */
            iconst_4
            aload 14 /* argument3 */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 15 /* argument3Type */
        start local 15 // int argument3Type
        47: .line 170
            aload 2 /* arguments */
            arraylength
            iconst_5
            iload 6 /* offset */
            iadd
            if_icmpne 50
        48: .line 171
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 10 /* argument1 */
            iload 11 /* argument1Type */
            aload 12 /* argument2 */
            iload 13 /* argument2Type */
            aload 14 /* argument3 */
            iload 15 /* argument3Type */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction3:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        49: .line 172
            goto 72
        end local 5 // java.lang.Object result
        50: .line 173
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            iconst_3
            aload 2 /* arguments */
            iconst_5
            iload 6 /* offset */
            iadd
            aaload
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flatten:(ILjava/lang/Object;)Ljava/lang/Object;
            astore 16 /* argument4 */
        start local 16 // java.lang.Object argument4
        51: .line 174
            aload 0 /* this */
            iconst_5
            aload 16 /* argument4 */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 17 /* argument4Type */
        start local 17 // int argument4Type
        52: .line 175
            aload 2 /* arguments */
            arraylength
            bipush 6
            iload 6 /* offset */
            iadd
            if_icmpne 57
        53: .line 176
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 10 /* argument1 */
            iload 11 /* argument1Type */
            aload 12 /* argument2 */
            iload 13 /* argument2Type */
            aload 14 /* argument3 */
            iload 15 /* argument3Type */
            aload 16 /* argument4 */
        54: .line 177
            iload 17 /* argument4Type */
            aload 4 /* realm */
        55: .line 176
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction4:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        56: .line 178
            goto 72
        end local 5 // java.lang.Object result
        57: .line 179
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            iconst_4
            aload 2 /* arguments */
            bipush 6
            iload 6 /* offset */
            iadd
            aaload
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flatten:(ILjava/lang/Object;)Ljava/lang/Object;
            astore 18 /* argument5 */
        start local 18 // java.lang.Object argument5
        58: .line 180
            aload 0 /* this */
            bipush 6
            aload 18 /* argument5 */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 19 /* argument5Type */
        start local 19 // int argument5Type
        59: .line 181
            aload 2 /* arguments */
            arraylength
            bipush 7
            iload 6 /* offset */
            iadd
            if_icmpne 64
        60: .line 182
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 10 /* argument1 */
            iload 11 /* argument1Type */
            aload 12 /* argument2 */
            iload 13 /* argument2Type */
            aload 14 /* argument3 */
            iload 15 /* argument3Type */
            aload 16 /* argument4 */
        61: .line 183
            iload 17 /* argument4Type */
            aload 18 /* argument5 */
            iload 19 /* argument5Type */
            aload 4 /* realm */
        62: .line 182
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction5:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        63: .line 184
            goto 72
        end local 5 // java.lang.Object result
        64: .line 185
      StackMap locals: java.lang.Object int
      StackMap stack:
            getstatic com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.$assertionsDisabled:Z
            ifne 65
            aload 2 /* arguments */
            arraylength
            bipush 8
            iload 6 /* offset */
            iadd
            if_icmpeq 65
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        65: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_5
            aload 2 /* arguments */
            bipush 7
            iload 6 /* offset */
            iadd
            aaload
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.flatten:(ILjava/lang/Object;)Ljava/lang/Object;
            astore 20 /* argument6 */
        start local 20 // java.lang.Object argument6
        66: .line 187
            aload 0 /* this */
            bipush 7
            aload 20 /* argument6 */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getValueType:(ILjava/lang/Object;)I
            istore 21 /* argument6Type */
        start local 21 // int argument6Type
        67: .line 188
            aload 0 /* this */
            aload 3 /* thisObject */
            iload 8 /* thisType */
            aload 9 /* calleeObject */
            aload 7 /* newTarget */
            aload 10 /* argument1 */
            iload 11 /* argument1Type */
            aload 12 /* argument2 */
            iload 13 /* argument2Type */
            aload 14 /* argument3 */
            iload 15 /* argument3Type */
            aload 16 /* argument4 */
        68: .line 189
            iload 17 /* argument4Type */
            aload 18 /* argument5 */
            iload 19 /* argument5Type */
            aload 20 /* argument6 */
            iload 21 /* argument6Type */
            aload 4 /* realm */
        69: .line 188
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction6:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        end local 21 // int argument6Type
        end local 20 // java.lang.Object argument6
        end local 19 // int argument5Type
        end local 18 // java.lang.Object argument5
        end local 17 // int argument4Type
        end local 16 // java.lang.Object argument4
        end local 15 // int argument3Type
        end local 14 // java.lang.Object argument3
        end local 13 // int argument2Type
        end local 12 // java.lang.Object argument2
        end local 11 // int argument1Type
        end local 10 // java.lang.Object argument1
        end local 9 // java.lang.Object calleeObject
        end local 8 // int thisType
        start local 5 // java.lang.Object result
        70: .line 196
            goto 72
        end local 5 // java.lang.Object result
        71: .line 197
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm top int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 2 /* arguments */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.executeFunction:([Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        72: .line 199
      StackMap locals: com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] java.lang.Object com.oracle.truffle.js.runtime.JSRealm java.lang.Object int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.graalAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            aload 5 /* result */
            invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.correctReturnValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.Object newTarget
        end local 6 // int offset
        end local 5 // java.lang.Object result
        end local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 3 // java.lang.Object thisObject
        end local 2 // java.lang.Object[] arguments
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   73     0               this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0   73     1              frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   73     2          arguments  [Ljava/lang/Object;
            2   73     3         thisObject  Ljava/lang/Object;
            3   73     4              realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            5    9     5  thisDynamicObject  Lcom/oracle/truffle/api/object/DynamicObject;
           23   24     5             result  Ljava/lang/Object;
           33   34     5             result  Ljava/lang/Object;
           39   40     5             result  Ljava/lang/Object;
           44   45     5             result  Ljava/lang/Object;
           49   50     5             result  Ljava/lang/Object;
           56   57     5             result  Ljava/lang/Object;
           63   64     5             result  Ljava/lang/Object;
           70   71     5             result  Ljava/lang/Object;
           72   73     5             result  Ljava/lang/Object;
           15   73     6             offset  I
           19   73     7          newTarget  Ljava/lang/Object;
           28   70     8           thisType  I
           29   70     9       calleeObject  Ljava/lang/Object;
           36   70    10          argument1  Ljava/lang/Object;
           37   70    11      argument1Type  I
           41   70    12          argument2  Ljava/lang/Object;
           42   70    13      argument2Type  I
           46   70    14          argument3  Ljava/lang/Object;
           47   70    15      argument3Type  I
           51   70    16          argument4  Ljava/lang/Object;
           52   70    17      argument4Type  I
           58   70    18          argument5  Ljava/lang/Object;
           59   70    19      argument5Type  I
           66   70    20          argument6  Ljava/lang/Object;
           67   70    21      argument6Type  I
    MethodParameters:
       Name  Flags
      frame  

  private void objectTemplateInstantiate(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // com.oracle.truffle.api.object.DynamicObject thisObject
        start local 3 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 204
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplateNode:Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
            ifnonnull 3
         1: .line 205
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 206
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplate:Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.graalAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
            invokestatic com.oracle.truffle.trufflenode.node.ObjectTemplateNode.fromObjectTemplate:(Lcom/oracle/truffle/trufflenode/info/ObjectTemplate;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/trufflenode/GraalJSAccess;)Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.trufflenode.node.ObjectTemplateNode
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplateNode:Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
         3: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.instanceTemplateNode:Lcom/oracle/truffle/trufflenode/node/ObjectTemplateNode;
            aload 1 /* frame */
            aload 2 /* thisObject */
            invokevirtual com.oracle.truffle.trufflenode.node.ObjectTemplateNode.executeWithObject:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            pop
         4: .line 212
            return
        end local 3 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 2 // com.oracle.truffle.api.object.DynamicObject thisObject
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    5     1       frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    5     2  thisObject  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     3       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
            Name  Flags
      frame       
      thisObject  
      realm       

  private void setConstructorTemplate(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObject
         0: .line 216
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.setConstructorTemplateNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            ifnonnull 3
         1: .line 217
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 218
            aload 0 /* this */
            aload 0 /* this */
            getstatic com.oracle.truffle.trufflenode.info.FunctionTemplate.CONSTRUCTOR:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.nodes.access.PropertySetNode.createSetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.access.PropertySetNode
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.setConstructorTemplateNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
         3: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.setConstructorTemplateNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
            aload 1 /* thisObject */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.functionTemplate:Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            invokevirtual com.oracle.truffle.js.nodes.access.PropertySetNode.setValue:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 224
            return
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    5     1  thisObject  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
            Name  Flags
      thisObject  

  private java.lang.Object getConstructorTemplate(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObject
         0: .line 228
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getConstructorTemplateNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            ifnonnull 3
         1: .line 229
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 230
            aload 0 /* this */
            aload 0 /* this */
            getstatic com.oracle.truffle.trufflenode.info.FunctionTemplate.CONSTRUCTOR:Lcom/oracle/truffle/api/object/HiddenKey;
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.createGetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
            putfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getConstructorTemplateNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
         3: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getConstructorTemplateNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 1 /* thisObject */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         4: .line 233
            aload 2 /* result */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 5
            aconst_null
            goto 6
      StackMap locals: java.lang.Object
      StackMap stack:
         5: aload 2 /* result */
      StackMap locals:
      StackMap stack: java.lang.Object
         6: areturn
        end local 2 // java.lang.Object result
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    7     1  thisObject  Lcom/oracle/truffle/api/object/DynamicObject;
            4    7     2      result  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      thisObject  

  private void checkConstructorTemplate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
         0: .line 240
            aload 1 /* thisObject */
            instanceof com.oracle.truffle.api.object.DynamicObject
            ifeq 1
            aload 0 /* this */
            aload 1 /* thisObject */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokevirtual com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.getConstructorTemplate:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            checkcast com.oracle.truffle.trufflenode.info.FunctionTemplate
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.trufflenode.info.FunctionTemplate
         2: astore 2 /* constructorTemplate */
        start local 2 // com.oracle.truffle.trufflenode.info.FunctionTemplate constructorTemplate
         3: .line 241
            goto 5
         4: .line 242
      StackMap locals: com.oracle.truffle.trufflenode.info.FunctionTemplate
      StackMap stack:
            aload 2 /* constructorTemplate */
            invokevirtual com.oracle.truffle.trufflenode.info.FunctionTemplate.getParent:()Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            astore 2 /* constructorTemplate */
         5: .line 241
      StackMap locals:
      StackMap stack:
            aload 2 /* constructorTemplate */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.signature:Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
            if_acmpeq 6
            aload 2 /* constructorTemplate */
            ifnonnull 4
         6: .line 244
      StackMap locals:
      StackMap stack:
            aload 2 /* constructorTemplate */
            ifnonnull 9
         7: .line 245
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         8: .line 246
            invokestatic com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.illegalInvocation:()V
         9: .line 248
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.trufflenode.info.FunctionTemplate constructorTemplate
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0   10     1           thisObject  Ljava/lang/Object;
            3   10     2  constructorTemplate  Lcom/oracle/truffle/trufflenode/info/FunctionTemplate;
    MethodParameters:
            Name  Flags
      thisObject  

  private static void illegalInvocation();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 251
            ldc "Illegal invocation"
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private int getValueType(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
         0: .line 257
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tValueTypeNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
    MethodParameters:
          Name  Flags
      index     
      argument  

  private java.lang.Object flatten(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
         0: .line 267
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tFlattenNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
    MethodParameters:
          Name  Flags
      index     
      argument  

  private java.lang.Object executeFunction(java.lang.Object[], com.oracle.truffle.js.runtime.JSRealm);
    descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object[] arguments
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 274
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* arguments */
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNew:Z
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.isNewTarget:Z
            aload 2 /* realm */
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction:(I[Ljava/lang/Object;ZZLjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // java.lang.Object[] arguments
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    1     1  arguments  [Ljava/lang/Object;
            0    1     2      realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      arguments  
      realm      

  private java.lang.Object executeFunction0(java.lang.Object, int, java.lang.Object, java.lang.Object, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 279
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* realm */
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction0:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    1     1    thisObject  Ljava/lang/Object;
            0    1     2      thisType  I
            0    1     3  calleeObject  Ljava/lang/Object;
            0    1     4     newTarget  Ljava/lang/Object;
            0    1     5         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      thisObject    
      thisType      
      calleeObject  
      newTarget     
      realm         

  private java.lang.Object executeFunction1(java.lang.Object, int, java.lang.Object, java.lang.Object, java.lang.Object, int, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=8
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // java.lang.Object argument
        start local 6 // int argumentType
        start local 7 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 284
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* argument */
            iload 6 /* argumentType */
            aload 7 /* realm */
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction1:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 6 // int argumentType
        end local 5 // java.lang.Object argument
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    1     1    thisObject  Ljava/lang/Object;
            0    1     2      thisType  I
            0    1     3  calleeObject  Ljava/lang/Object;
            0    1     4     newTarget  Ljava/lang/Object;
            0    1     5      argument  Ljava/lang/Object;
            0    1     6  argumentType  I
            0    1     7         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      thisObject    
      thisType      
      calleeObject  
      newTarget     
      argument      
      argumentType  
      realm         

  private java.lang.Object executeFunction2(java.lang.Object, int, java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object, int, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=10, args_size=10
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // java.lang.Object argument1
        start local 6 // int argument1Type
        start local 7 // java.lang.Object argument2
        start local 8 // int argument2Type
        start local 9 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 290
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* argument1 */
            iload 6 /* argument1Type */
            aload 7 /* argument2 */
            iload 8 /* argument2Type */
            aload 9 /* realm */
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction2:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 9 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 8 // int argument2Type
        end local 7 // java.lang.Object argument2
        end local 6 // int argument1Type
        end local 5 // java.lang.Object argument1
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    1     1     thisObject  Ljava/lang/Object;
            0    1     2       thisType  I
            0    1     3   calleeObject  Ljava/lang/Object;
            0    1     4      newTarget  Ljava/lang/Object;
            0    1     5      argument1  Ljava/lang/Object;
            0    1     6  argument1Type  I
            0    1     7      argument2  Ljava/lang/Object;
            0    1     8  argument2Type  I
            0    1     9          realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      thisObject     
      thisType       
      calleeObject   
      newTarget      
      argument1      
      argument1Type  
      argument2      
      argument2Type  
      realm          

  private java.lang.Object executeFunction3(java.lang.Object, int, java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=12, args_size=12
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // java.lang.Object argument1
        start local 6 // int argument1Type
        start local 7 // java.lang.Object argument2
        start local 8 // int argument2Type
        start local 9 // java.lang.Object argument3
        start local 10 // int argument3Type
        start local 11 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 296
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* argument1 */
            iload 6 /* argument1Type */
            aload 7 /* argument2 */
            iload 8 /* argument2Type */
            aload 9 /* argument3 */
            iload 10 /* argument3Type */
            aload 11 /* realm */
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction3:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 11 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 10 // int argument3Type
        end local 9 // java.lang.Object argument3
        end local 8 // int argument2Type
        end local 7 // java.lang.Object argument2
        end local 6 // int argument1Type
        end local 5 // java.lang.Object argument1
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    1     1     thisObject  Ljava/lang/Object;
            0    1     2       thisType  I
            0    1     3   calleeObject  Ljava/lang/Object;
            0    1     4      newTarget  Ljava/lang/Object;
            0    1     5      argument1  Ljava/lang/Object;
            0    1     6  argument1Type  I
            0    1     7      argument2  Ljava/lang/Object;
            0    1     8  argument2Type  I
            0    1     9      argument3  Ljava/lang/Object;
            0    1    10  argument3Type  I
            0    1    11          realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      thisObject     
      thisType       
      calleeObject   
      newTarget      
      argument1      
      argument1Type  
      argument2      
      argument2Type  
      argument3      
      argument3Type  
      realm          

  private java.lang.Object executeFunction4(java.lang.Object, int, java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=14, args_size=14
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // java.lang.Object argument1
        start local 6 // int argument1Type
        start local 7 // java.lang.Object argument2
        start local 8 // int argument2Type
        start local 9 // java.lang.Object argument3
        start local 10 // int argument3Type
        start local 11 // java.lang.Object argument4
        start local 12 // int argument4Type
        start local 13 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 302
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* argument1 */
            iload 6 /* argument1Type */
            aload 7 /* argument2 */
            iload 8 /* argument2Type */
            aload 9 /* argument3 */
            iload 10 /* argument3Type */
            aload 11 /* argument4 */
            iload 12 /* argument4Type */
         1: .line 303
            aload 13 /* realm */
         2: .line 302
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction4:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 13 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 12 // int argument4Type
        end local 11 // java.lang.Object argument4
        end local 10 // int argument3Type
        end local 9 // java.lang.Object argument3
        end local 8 // int argument2Type
        end local 7 // java.lang.Object argument2
        end local 6 // int argument1Type
        end local 5 // java.lang.Object argument1
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    3     1     thisObject  Ljava/lang/Object;
            0    3     2       thisType  I
            0    3     3   calleeObject  Ljava/lang/Object;
            0    3     4      newTarget  Ljava/lang/Object;
            0    3     5      argument1  Ljava/lang/Object;
            0    3     6  argument1Type  I
            0    3     7      argument2  Ljava/lang/Object;
            0    3     8  argument2Type  I
            0    3     9      argument3  Ljava/lang/Object;
            0    3    10  argument3Type  I
            0    3    11      argument4  Ljava/lang/Object;
            0    3    12  argument4Type  I
            0    3    13          realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      thisObject     
      thisType       
      calleeObject   
      newTarget      
      argument1      
      argument1Type  
      argument2      
      argument2Type  
      argument3      
      argument3Type  
      argument4      
      argument4Type  
      realm          

  private java.lang.Object executeFunction5(java.lang.Object, int, java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=16, args_size=16
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // java.lang.Object argument1
        start local 6 // int argument1Type
        start local 7 // java.lang.Object argument2
        start local 8 // int argument2Type
        start local 9 // java.lang.Object argument3
        start local 10 // int argument3Type
        start local 11 // java.lang.Object argument4
        start local 12 // int argument4Type
        start local 13 // java.lang.Object argument5
        start local 14 // int argument5Type
        start local 15 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 309
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* argument1 */
            iload 6 /* argument1Type */
            aload 7 /* argument2 */
            iload 8 /* argument2Type */
            aload 9 /* argument3 */
            iload 10 /* argument3Type */
            aload 11 /* argument4 */
            iload 12 /* argument4Type */
         1: .line 310
            aload 13 /* argument5 */
            iload 14 /* argument5Type */
            aload 15 /* realm */
         2: .line 309
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction5:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 15 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 14 // int argument5Type
        end local 13 // java.lang.Object argument5
        end local 12 // int argument4Type
        end local 11 // java.lang.Object argument4
        end local 10 // int argument3Type
        end local 9 // java.lang.Object argument3
        end local 8 // int argument2Type
        end local 7 // java.lang.Object argument2
        end local 6 // int argument1Type
        end local 5 // java.lang.Object argument1
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    3     1     thisObject  Ljava/lang/Object;
            0    3     2       thisType  I
            0    3     3   calleeObject  Ljava/lang/Object;
            0    3     4      newTarget  Ljava/lang/Object;
            0    3     5      argument1  Ljava/lang/Object;
            0    3     6  argument1Type  I
            0    3     7      argument2  Ljava/lang/Object;
            0    3     8  argument2Type  I
            0    3     9      argument3  Ljava/lang/Object;
            0    3    10  argument3Type  I
            0    3    11      argument4  Ljava/lang/Object;
            0    3    12  argument4Type  I
            0    3    13      argument5  Ljava/lang/Object;
            0    3    14  argument5Type  I
            0    3    15          realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      thisObject     
      thisType       
      calleeObject   
      newTarget      
      argument1      
      argument1Type  
      argument2      
      argument2Type  
      argument3      
      argument3Type  
      argument4      
      argument4Type  
      argument5      
      argument5Type  
      realm          

  private java.lang.Object executeFunction6(java.lang.Object, int, java.lang.Object, java.lang.Object, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, java.lang.Object, int, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=17, locals=18, args_size=18
        start local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
        start local 1 // java.lang.Object thisObject
        start local 2 // int thisType
        start local 3 // java.lang.Object calleeObject
        start local 4 // java.lang.Object newTarget
        start local 5 // java.lang.Object argument1
        start local 6 // int argument1Type
        start local 7 // java.lang.Object argument2
        start local 8 // int argument2Type
        start local 9 // java.lang.Object argument3
        start local 10 // int argument3Type
        start local 11 // java.lang.Object argument4
        start local 12 // int argument4Type
        start local 13 // java.lang.Object argument5
        start local 14 // int argument5Type
        start local 15 // java.lang.Object argument6
        start local 16 // int argument6Type
        start local 17 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 317
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode.templateID:I
            aload 1 /* thisObject */
            iload 2 /* thisType */
            aload 4 /* newTarget */
            aload 5 /* argument1 */
            iload 6 /* argument1Type */
            aload 7 /* argument2 */
            iload 8 /* argument2Type */
            aload 9 /* argument3 */
            iload 10 /* argument3Type */
            aload 11 /* argument4 */
            iload 12 /* argument4Type */
         1: .line 318
            aload 13 /* argument5 */
            iload 14 /* argument5Type */
            aload 15 /* argument6 */
            iload 16 /* argument6Type */
            aload 17 /* realm */
         2: .line 317
            invokestatic com.oracle.truffle.trufflenode.NativeAccess.executeFunction6:(ILjava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 17 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 16 // int argument6Type
        end local 15 // java.lang.Object argument6
        end local 14 // int argument5Type
        end local 13 // java.lang.Object argument5
        end local 12 // int argument4Type
        end local 11 // java.lang.Object argument4
        end local 10 // int argument3Type
        end local 9 // java.lang.Object argument3
        end local 8 // int argument2Type
        end local 7 // java.lang.Object argument2
        end local 6 // int argument1Type
        end local 5 // java.lang.Object argument1
        end local 4 // java.lang.Object newTarget
        end local 3 // java.lang.Object calleeObject
        end local 2 // int thisType
        end local 1 // java.lang.Object thisObject
        end local 0 // com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/trufflenode/node/ExecuteNativeFunctionNode;
            0    3     1     thisObject  Ljava/lang/Object;
            0    3     2       thisType  I
            0    3     3   calleeObject  Ljava/lang/Object;
            0    3     4      newTarget  Ljava/lang/Object;
            0    3     5      argument1  Ljava/lang/Object;
            0    3     6  argument1Type  I
            0    3     7      argument2  Ljava/lang/Object;
            0    3     8  argument2Type  I
            0    3     9      argument3  Ljava/lang/Object;
            0    3    10  argument3Type  I
            0    3    11      argument4  Ljava/lang/Object;
            0    3    12  argument4Type  I
            0    3    13      argument5  Ljava/lang/Object;
            0    3    14  argument5Type  I
            0    3    15      argument6  Ljava/lang/Object;
            0    3    16  argument6Type  I
            0    3    17          realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      thisObject     
      thisType       
      calleeObject   
      newTarget      
      argument1      
      argument1Type  
      argument2      
      argument2Type  
      argument3      
      argument3Type  
      argument4      
      argument4Type  
      argument5      
      argument5Type  
      argument6      
      argument6Type  
      realm          
}
SourceFile: "ExecuteNativeFunctionNode.java"
NestMembers:
  com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final RootBodyTag = com.oracle.truffle.api.instrumentation.StandardTags$RootBodyTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public NativeFunctionRootNode = com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode$NativeFunctionRootNode of com.oracle.truffle.trufflenode.node.ExecuteNativeFunctionNode