abstract class com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  private final boolean generatorFunction;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean asyncFunction;
    descriptor: Z
    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

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // boolean generatorFunction
        start local 3 // boolean asyncFunction
         0: .line 1636
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 1637
            aload 0 /* this */
            iload 2 /* generatorFunction */
            putfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.generatorFunction:Z
         2: .line 1638
            aload 0 /* this */
            iload 3 /* asyncFunction */
            putfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.asyncFunction:Z
         3: .line 1639
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         4: .line 1640
            return
        end local 3 // boolean asyncFunction
        end local 2 // boolean generatorFunction
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
            0    5     1            context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    5     2  generatorFunction  Z
            0    5     3      asyncFunction  Z
    MethodParameters:
                   Name  Flags
      context            
      generatorFunction  
      asyncFunction      

  protected abstract com.oracle.truffle.api.object.DynamicObject executeFunction(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      paramList   
      body        
      sourceName  

  protected static boolean equals(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String a
        start local 1 // java.lang.String b
         0: .line 1645
            aload 0 /* a */
            aload 1 /* b */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String b
        end local 0 // java.lang.String a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/lang/String;
            0    1     1     b  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      a     
      b     

  protected com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache<com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey, com.oracle.truffle.js.nodes.ScriptNode> createCache();
    descriptor: ()Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
         0: .line 1649
            new com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getFunctionConstructorCacheSize:()I
            invokespecial com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache.<init>:(I)V
            areturn
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
    Signature: ()Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;

  protected final com.oracle.truffle.api.object.DynamicObject doCached(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, com.oracle.truffle.js.nodes.ScriptNode);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/js/nodes/ScriptNode;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
        start local 1 // java.lang.String paramList
        start local 2 // java.lang.String body
        start local 3 // java.lang.String sourceName
        start local 4 // java.lang.String cachedParamList
        start local 5 // java.lang.String cachedBody
        start local 6 // java.lang.String cachedSourceName
        start local 7 // com.oracle.truffle.js.nodes.ScriptNode parsedFunction
         0: .line 1659
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            aload 7 /* parsedFunction */
            invokestatic com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.evalParsedFunction:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/nodes/ScriptNode;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 7 // com.oracle.truffle.js.nodes.ScriptNode parsedFunction
        end local 6 // java.lang.String cachedSourceName
        end local 5 // java.lang.String cachedBody
        end local 4 // java.lang.String cachedParamList
        end local 3 // java.lang.String sourceName
        end local 2 // java.lang.String body
        end local 1 // java.lang.String paramList
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
            0    1     1         paramList  Ljava/lang/String;
            0    1     2              body  Ljava/lang/String;
            0    1     3        sourceName  Ljava/lang/String;
            0    1     4   cachedParamList  Ljava/lang/String;
            0    1     5        cachedBody  Ljava/lang/String;
            0    1     6  cachedSourceName  Ljava/lang/String;
            0    1     7    parsedFunction  Lcom/oracle/truffle/js/nodes/ScriptNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"equals(cachedParamList, paramList)", "equals(cachedBody, body)", "equals(cachedSourceName, sourceName)"}, limit = "1")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached(value = "paramList")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "body")
      5:
        com.oracle.truffle.api.dsl.Cached(value = "sourceName")
      6:
        com.oracle.truffle.api.dsl.Cached(value = "parseFunction(paramList, body, sourceName)")
    MethodParameters:
                  Name  Flags
      paramList         
      body              
      sourceName        
      cachedParamList   
      cachedBody        
      cachedSourceName  
      parsedFunction    

  protected final com.oracle.truffle.api.object.DynamicObject doUncached(java.lang.String, java.lang.String, java.lang.String, com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache<com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey, com.oracle.truffle.js.nodes.ScriptNode>, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
        start local 1 // java.lang.String paramList
        start local 2 // java.lang.String body
        start local 3 // java.lang.String sourceName
        start local 4 // com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache cache
        start local 5 // com.oracle.truffle.api.profiles.ConditionProfile cacheHit
         0: .line 1666
            aload 0 /* this */
            aload 4 /* cache */
            new com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey
            dup
            aload 1 /* paramList */
            aload 2 /* body */
            aload 3 /* sourceName */
            invokespecial com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.cacheLookup:(Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache;Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 6 /* cached */
        start local 6 // com.oracle.truffle.js.nodes.ScriptNode cached
         1: .line 1667
            aload 5 /* cacheHit */
            aload 6 /* cached */
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode java.lang.String java.lang.String java.lang.String com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache com.oracle.truffle.api.profiles.ConditionProfile com.oracle.truffle.js.nodes.ScriptNode
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
         2: iconst_0
      StackMap locals: com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode java.lang.String java.lang.String java.lang.String com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache com.oracle.truffle.api.profiles.ConditionProfile com.oracle.truffle.js.nodes.ScriptNode
      StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
         3: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 5
         4: .line 1668
            aload 0 /* this */
            aload 4 /* cache */
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            aload 1 /* paramList */
            aload 2 /* body */
            aload 3 /* sourceName */
            invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.parseAndEvalFunction:(Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache;Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
         5: .line 1670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            aload 6 /* cached */
            invokestatic com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.evalParsedFunction:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/nodes/ScriptNode;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 6 // com.oracle.truffle.js.nodes.ScriptNode cached
        end local 5 // com.oracle.truffle.api.profiles.ConditionProfile cacheHit
        end local 4 // com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache cache
        end local 3 // java.lang.String sourceName
        end local 2 // java.lang.String body
        end local 1 // java.lang.String paramList
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
            0    6     1   paramList  Ljava/lang/String;
            0    6     2        body  Ljava/lang/String;
            0    6     3  sourceName  Ljava/lang/String;
            0    6     4       cache  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;
            0    6     5    cacheHit  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            1    6     6      cached  Lcom/oracle/truffle/js/nodes/ScriptNode;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"doCached"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached(value = "createCache()")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "createCountingProfile()")
    MethodParameters:
            Name  Flags
      paramList   
      body        
      sourceName  
      cache       
      cacheHit    

  protected com.oracle.truffle.js.nodes.ScriptNode cacheLookup(com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache<com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey, com.oracle.truffle.js.nodes.ScriptNode>, com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey);
    descriptor: (Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache;Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
        start local 1 // com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache cache
        start local 2 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey sourceKey
         0: .line 1676
            aload 1 /* cache */
            dup
            astore 3
            monitorenter
         1: .line 1677
            aload 1 /* cache */
            aload 2 /* sourceKey */
            invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.ScriptNode
            aload 3
            monitorexit
         2: areturn
         3: .line 1676
      StackMap locals: com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         4: athrow
        end local 2 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey sourceKey
        end local 1 // com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache cache
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
            0    5     1      cache  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;
            0    5     2  sourceKey  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      cache      
      sourceKey  

  protected final com.oracle.truffle.js.nodes.ScriptNode parseFunction(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
        start local 1 // java.lang.String paramList
        start local 2 // java.lang.String body
        start local 3 // java.lang.String sourceName
         0: .line 1683
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 1684
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* paramList */
            aload 2 /* body */
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.generatorFunction:Z
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.asyncFunction:Z
            aload 3 /* sourceName */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.parseFunction:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            areturn
        end local 3 // java.lang.String sourceName
        end local 2 // java.lang.String body
        end local 1 // java.lang.String paramList
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
            0    2     1   paramList  Ljava/lang/String;
            0    2     2        body  Ljava/lang/String;
            0    2     3  sourceName  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(transferToInterpreterOnException = false)
    MethodParameters:
            Name  Flags
      paramList   
      body        
      sourceName  

  private static com.oracle.truffle.api.object.DynamicObject evalParsedFunction(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.nodes.ScriptNode);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/nodes/ScriptNode;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 1 // com.oracle.truffle.js.nodes.ScriptNode parsedFunction
         0: .line 1689
            aload 1 /* parsedFunction */
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.run:(Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            areturn
        end local 1 // com.oracle.truffle.js.nodes.ScriptNode parsedFunction
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0           realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     1  parsedFunction  Lcom/oracle/truffle/js/nodes/ScriptNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(transferToInterpreterOnException = false)
    MethodParameters:
                Name  Flags
      realm           
      parsedFunction  

  private com.oracle.truffle.api.object.DynamicObject parseAndEvalFunction(com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache<com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey, com.oracle.truffle.js.nodes.ScriptNode>, com.oracle.truffle.js.runtime.JSRealm, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache;Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
        start local 1 // com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache cache
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 3 // java.lang.String paramList
        start local 4 // java.lang.String body
        start local 5 // java.lang.String sourceName
         0: .line 1694
            aload 0 /* this */
            aload 3 /* paramList */
            aload 4 /* body */
            aload 5 /* sourceName */
            invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.parseFunction:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 6 /* parsedBody */
        start local 6 // com.oracle.truffle.js.nodes.ScriptNode parsedBody
         1: .line 1695
            aload 1 /* cache */
            dup
            astore 7
            monitorenter
         2: .line 1696
            aload 1 /* cache */
            new com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey
            dup
            aload 3 /* paramList */
            aload 4 /* body */
            aload 5 /* sourceName */
            invokespecial com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            aload 6 /* parsedBody */
            invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1695
            aload 7
            monitorexit
         4: goto 7
      StackMap locals: com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache com.oracle.truffle.js.runtime.JSRealm java.lang.String java.lang.String java.lang.String com.oracle.truffle.js.nodes.ScriptNode com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache
      StackMap stack: java.lang.Throwable
         5: aload 7
            monitorexit
         6: athrow
         7: .line 1698
      StackMap locals:
      StackMap stack:
            aload 2 /* realm */
            aload 6 /* parsedBody */
            invokestatic com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode.evalParsedFunction:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/nodes/ScriptNode;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 6 // com.oracle.truffle.js.nodes.ScriptNode parsedBody
        end local 5 // java.lang.String sourceName
        end local 4 // java.lang.String body
        end local 3 // java.lang.String paramList
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache cache
        end local 0 // com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode;
            0    8     1       cache  Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;
            0    8     2       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    8     3   paramList  Ljava/lang/String;
            0    8     4        body  Ljava/lang/String;
            0    8     5  sourceName  Ljava/lang/String;
            1    8     6  parsedBody  Lcom/oracle/truffle/js/nodes/ScriptNode;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    Signature: (Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$LRUCache<Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey;Lcom/oracle/truffle/js/nodes/ScriptNode;>;Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(transferToInterpreterOnException = false)
    MethodParameters:
            Name  Flags
      cache       
      realm       
      paramList   
      body        
      sourceName  
}
SourceFile: "ConstructorBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ConstructorBuiltins
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  abstract CreateDynamicFunctionNode = com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode of com.oracle.truffle.js.builtins.ConstructorBuiltins
  protected CachedSourceKey = com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode$CachedSourceKey of com.oracle.truffle.js.builtins.ConstructorBuiltins$CreateDynamicFunctionNode
  final LRUCache = com.oracle.truffle.js.builtins.ConstructorBuiltins$LRUCache of com.oracle.truffle.js.builtins.ConstructorBuiltins