public abstract class com.oracle.truffle.js.nodes.function.EvalNode extends com.oracle.truffle.js.nodes.JavaScriptNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.nodes.function.EvalNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptNode
{
  private final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected com.oracle.truffle.js.nodes.JavaScriptNode functionNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.Executed()

  protected com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode arguments;
    descriptor: Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  protected com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode directEvalNode;
    descriptor: Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode[], com.oracle.truffle.js.nodes.JavaScriptNode, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode function
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode thisObject
        start local 5 // java.lang.Object env
         0: .line 80
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* function */
            aload 1 /* context */
            aload 3 /* args */
            invokestatic com.oracle.truffle.js.nodes.function.JSFunctionArgumentsNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
            aload 1 /* context */
            aload 4 /* thisObject */
            aload 5 /* env */
            invokestatic com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;
            invokespecial com.oracle.truffle.js.nodes.function.EvalNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;)V
         1: .line 81
            return
        end local 5 // java.lang.Object env
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode thisObject
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
            0    2     1     context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     2    function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    2     3        args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    2     4  thisObject  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    2     5         env  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      context     
      function    
      args        
      thisObject  
      env         

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode, com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode functionNode
        start local 3 // com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode arguments
        start local 4 // com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode directEvalNode
         0: .line 83
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.<init>:()V
         1: .line 84
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.nodes.function.EvalNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 85
            aload 0 /* this */
            aload 2 /* functionNode */
            putfield com.oracle.truffle.js.nodes.function.EvalNode.functionNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         3: .line 86
            aload 0 /* this */
            aload 3 /* arguments */
            putfield com.oracle.truffle.js.nodes.function.EvalNode.arguments:Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
         4: .line 87
            aload 0 /* this */
            aload 4 /* directEvalNode */
            putfield com.oracle.truffle.js.nodes.function.EvalNode.directEvalNode:Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;
         5: .line 88
            return
        end local 4 // com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode directEvalNode
        end local 3 // com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode arguments
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode functionNode
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
            0    6     1         context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    6     2    functionNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    6     3       arguments  Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
            0    6     4  directEvalNode  Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;
    MethodParameters:
                Name  Flags
      context         
      functionNode    
      arguments       
      directEvalNode  

  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.js.nodes.function.EvalNode this
        start local 1 // java.lang.Class tag
         0: .line 92
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$EvalCallTag;
            if_acmpne 2
         1: .line 93
            iconst_1
            ireturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tag */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
            0    3     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   

  protected java.lang.Object evalNotOverridden(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object evalFunction
         0: .line 101
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.EvalNode.arguments:Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode.getCount:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 3 /* argCount */
        start local 3 // int argCount
         1: .line 102
            iload 3 /* argCount */
            anewarray java.lang.Object
            astore 4 /* args */
        start local 4 // java.lang.Object[] args
         2: .line 103
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.EvalNode.arguments:Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
            aload 1 /* frame */
            aload 4 /* args */
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode.executeFillObjectArray:(Lcom/oracle/truffle/api/frame/VirtualFrame;[Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 4 /* args */
         3: .line 104
            aload 4 /* args */
            arraylength
            ifne 4
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 5
      StackMap locals: int java.lang.Object[]
      StackMap stack:
         4: aload 4 /* args */
            iconst_0
            aaload
      StackMap locals:
      StackMap stack: java.lang.Object
         5: astore 5 /* source */
        start local 5 // java.lang.Object source
         6: .line 105
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.EvalNode.directEvalNode:Lcom/oracle/truffle/js/nodes/function/EvalNode$DirectEvalNode;
            aload 1 /* frame */
            aload 5 /* source */
            invokevirtual com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode.executeWithSource:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object source
        end local 4 // java.lang.Object[] args
        end local 3 // int argCount
        end local 2 // java.lang.Object evalFunction
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
            0    7     1         frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    7     2  evalFunction  Ljava/lang/Object;
            1    7     3      argCount  I
            2    7     4          args  [Ljava/lang/Object;
            6    7     5        source  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isEvalOverridden(evalFunction)"})
    MethodParameters:
              Name  Flags
      frame         
      evalFunction  

  protected java.lang.Object evalOverridden(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, com.oracle.truffle.js.nodes.function.JSFunctionCallNode);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object evalFunction
        start local 3 // com.oracle.truffle.js.nodes.function.JSFunctionCallNode redirectCall
         0: .line 111
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.EvalNode.arguments:Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode.getCount:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 4 /* argCount */
        start local 4 // int argCount
         1: .line 112
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 2 /* evalFunction */
            iload 4 /* argCount */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.createInitial:(Ljava/lang/Object;Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 5 /* args */
        start local 5 // java.lang.Object[] args
         2: .line 113
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.EvalNode.arguments:Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
            aload 1 /* frame */
            aload 5 /* args */
            iconst_2
            invokevirtual com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode.executeFillObjectArray:(Lcom/oracle/truffle/api/frame/VirtualFrame;[Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 5 /* args */
         3: .line 114
            aload 3 /* redirectCall */
            aload 5 /* args */
            invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object[] args
        end local 4 // int argCount
        end local 3 // com.oracle.truffle.js.nodes.function.JSFunctionCallNode redirectCall
        end local 2 // java.lang.Object evalFunction
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
            0    4     1         frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    4     2  evalFunction  Ljava/lang/Object;
            0    4     3  redirectCall  Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
            1    4     4      argCount  I
            2    4     5          args  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isEvalOverridden(evalFunction)"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached(value = "createCall()")
    MethodParameters:
              Name  Flags
      frame         
      evalFunction  
      redirectCall  

  protected final boolean isEvalOverridden(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
        start local 1 // java.lang.Object function
         0: .line 118
            aload 1 /* function */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.EvalNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEvalFunctionObject:()Ljava/lang/Object;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object function
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
            0    2     1  function  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      function  

  public static com.oracle.truffle.js.nodes.function.EvalNode create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode[], com.oracle.truffle.js.nodes.JavaScriptNode, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/function/EvalNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=5
         0: .line 122
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tEvalNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
              Name  Flags
      context       
      functionNode  
      args          
      thisObject    
      env           

  private static java.lang.String formatEvalOrigin(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node callNode
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 127
            aload 0 /* callNode */
            ifnonnull 2
         1: .line 128
            aconst_null
            areturn
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* callNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* sourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         3: .line 131
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            astore 3 /* sourceName */
        start local 3 // java.lang.String sourceName
         4: .line 132
            aload 0 /* callNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
            astore 4 /* callerName */
        start local 4 // java.lang.String callerName
         5: .line 133
            aload 4 /* callerName */
            ifnull 6
            aload 4 /* callerName */
            ldc ":"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 134
      StackMap locals: com.oracle.truffle.api.source.SourceSection java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSError.getAnonymousFunctionNameStackTrace:(Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
            astore 4 /* callerName */
         7: .line 136
      StackMap locals:
      StackMap stack:
            aload 3 /* sourceName */
            ldc "eval at "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 137
            new java.lang.StringBuilder
            dup
            ldc "eval at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* callerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* sourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         9: .line 139
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "eval at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* callerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* sourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.String callerName
        end local 3 // java.lang.String sourceName
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.api.nodes.Node callNode
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0       callNode  Lcom/oracle/truffle/api/nodes/Node;
            0   10     1        context  Lcom/oracle/truffle/js/runtime/JSContext;
            3   10     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            4   10     3     sourceName  Ljava/lang/String;
            5   10     4     callerName  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      callNode  
      context   

  public static java.lang.String findAndFormatEvalOrigin(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node evalNode
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 145
            aload 0 /* evalNode */
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.function.EvalNode.formatEvalOrigin:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
            astore 2 /* evalOrigin */
        start local 2 // java.lang.String evalOrigin
         1: .line 146
            aload 2 /* evalOrigin */
            ifnull 3
         2: .line 147
            aload 2 /* evalOrigin */
            areturn
         3: .line 149
      StackMap locals: java.lang.String
      StackMap stack:
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 1 /* context */
            invokedynamic visitFrame(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/frame/FrameInstance;)Ljava/lang/Object;
                  com/oracle/truffle/js/nodes/function/EvalNode.lambda$0(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/frame/FrameInstance;)Ljava/lang/String; (6)
                  (Lcom/oracle/truffle/api/frame/FrameInstance;)Ljava/lang/String;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.iterateFrames:(Lcom/oracle/truffle/api/frame/FrameInstanceVisitor;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 2 // java.lang.String evalOrigin
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.api.nodes.Node evalNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0    evalNode  Lcom/oracle/truffle/api/nodes/Node;
            0    4     1     context  Lcom/oracle/truffle/js/runtime/JSContext;
            1    4     2  evalOrigin  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      evalNode  
      context   

  protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
         0: .line 154
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tEvalNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.js.nodes.function.EvalNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/function/EvalNode;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  private static java.lang.String lambda$0(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.frame.FrameInstance);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/frame/FrameInstance;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.truffle.api.frame.FrameInstance frameInstance
         0: .line 149
            aload 1 /* frameInstance */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
            aload 0
            invokestatic com.oracle.truffle.js.nodes.function.EvalNode.formatEvalOrigin:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.api.frame.FrameInstance frameInstance
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     1  frameInstance  Lcom/oracle/truffle/api/frame/FrameInstance;
}
SourceFile: "EvalNode.java"
NestMembers:
  com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  protected abstract DirectEvalNode = com.oracle.truffle.js.nodes.function.EvalNode$DirectEvalNode of com.oracle.truffle.js.nodes.function.EvalNode
  public final EvalCallTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$EvalCallTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles