final class org.graalvm.tools.insight.test.InsightObjectFactory extends com.oracle.truffle.api.test.polyglot.ProxyLanguage
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.tools.insight.test.InsightObjectFactory
  super_class: com.oracle.truffle.api.test.polyglot.ProxyLanguage
{
  static com.oracle.truffle.api.interop.TruffleObject insightObject;
    descriptor: Lcom/oracle/truffle/api/interop/TruffleObject;
    flags: (0x0008) ACC_STATIC

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.tools.insight.test.InsightObjectFactory this
         0: .line 51
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.polyglot.ProxyLanguage.<init>:()V
            return
        end local 0 // org.graalvm.tools.insight.test.InsightObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/insight/test/InsightObjectFactory;

  static org.graalvm.tools.insight.test.InsightAPI$OnConfig createConfig(boolean, boolean, boolean, java.lang.String, java.util.function.Predicate<org.graalvm.tools.insight.test.InsightAPI$SourceInfo>);
    descriptor: (ZZZLjava/lang/String;Ljava/util/function/Predicate;)Lorg/graalvm/tools/insight/test/InsightAPI$OnConfig;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=5
        start local 0 // boolean expressions
        start local 1 // boolean statements
        start local 2 // boolean roots
        start local 3 // java.lang.String rootNameFilter
        start local 4 // java.util.function.Predicate sourceFilter
         0: .line 57
            new org.graalvm.tools.insight.test.InsightAPI$OnConfig
            dup
            invokespecial org.graalvm.tools.insight.test.InsightAPI$OnConfig.<init>:()V
            astore 5 /* config */
        start local 5 // org.graalvm.tools.insight.test.InsightAPI$OnConfig config
         1: .line 58
            aload 5 /* config */
            iload 0 /* expressions */
            putfield org.graalvm.tools.insight.test.InsightAPI$OnConfig.expressions:Z
         2: .line 59
            aload 5 /* config */
            iload 1 /* statements */
            putfield org.graalvm.tools.insight.test.InsightAPI$OnConfig.statements:Z
         3: .line 60
            aload 5 /* config */
            iload 2 /* roots */
            putfield org.graalvm.tools.insight.test.InsightAPI$OnConfig.roots:Z
         4: .line 61
            aload 5 /* config */
            aload 3 /* rootNameFilter */
            putfield org.graalvm.tools.insight.test.InsightAPI$OnConfig.rootNameFilter:Ljava/lang/String;
         5: .line 62
            aload 5 /* config */
            aload 4 /* sourceFilter */
            putfield org.graalvm.tools.insight.test.InsightAPI$OnConfig.sourceFilter:Ljava/util/function/Predicate;
         6: .line 63
            aload 5 /* config */
            areturn
        end local 5 // org.graalvm.tools.insight.test.InsightAPI$OnConfig config
        end local 4 // java.util.function.Predicate sourceFilter
        end local 3 // java.lang.String rootNameFilter
        end local 2 // boolean roots
        end local 1 // boolean statements
        end local 0 // boolean expressions
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0     expressions  Z
            0    7     1      statements  Z
            0    7     2           roots  Z
            0    7     3  rootNameFilter  Ljava/lang/String;
            0    7     4    sourceFilter  Ljava/util/function/Predicate<Lorg/graalvm/tools/insight/test/InsightAPI$SourceInfo;>;
            1    7     5          config  Lorg/graalvm/tools/insight/test/InsightAPI$OnConfig;
    Signature: (ZZZLjava/lang/String;Ljava/util/function/Predicate<Lorg/graalvm/tools/insight/test/InsightAPI$SourceInfo;>;)Lorg/graalvm/tools/insight/test/InsightAPI$OnConfig;
    MethodParameters:
                Name  Flags
      expressions     
      statements      
      roots           
      rootNameFilter  
      sourceFilter    

  static org.graalvm.polyglot.Context newContext();
    descriptor: ()Lorg/graalvm/polyglot/Context;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 67
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 0 /* os */
        start local 0 // java.io.ByteArrayOutputStream os
         1: .line 68
            aload 0 /* os */
            aload 0 /* os */
            invokestatic org.graalvm.tools.insight.test.InsightObjectFactory.newContext:(Ljava/io/ByteArrayOutputStream;Ljava/io/ByteArrayOutputStream;)Lorg/graalvm/polyglot/Context;
            areturn
        end local 0 // java.io.ByteArrayOutputStream os
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0    os  Ljava/io/ByteArrayOutputStream;

  static org.graalvm.polyglot.Context newContext(java.io.ByteArrayOutputStream, java.io.ByteArrayOutputStream);
    descriptor: (Ljava/io/ByteArrayOutputStream;Ljava/io/ByteArrayOutputStream;)Lorg/graalvm/polyglot/Context;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ByteArrayOutputStream out
        start local 1 // java.io.ByteArrayOutputStream err
         0: .line 72
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 0 /* out */
            invokevirtual org.graalvm.polyglot.Context$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
            aload 1 /* err */
            invokevirtual org.graalvm.polyglot.Context$Builder.err:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
            getstatic org.graalvm.polyglot.HostAccess.ALL:Lorg/graalvm/polyglot/HostAccess;
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            areturn
        end local 1 // java.io.ByteArrayOutputStream err
        end local 0 // java.io.ByteArrayOutputStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   out  Ljava/io/ByteArrayOutputStream;
            0    1     1   err  Ljava/io/ByteArrayOutputStream;
    MethodParameters:
      Name  Flags
      out   
      err   

  protected com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.TruffleLanguage$ParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.graalvm.tools.insight.test.InsightObjectFactory this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
         0: .line 77
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.api.source.Source source
         1: .line 78
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            astore 3 /* scriptName */
        start local 3 // java.lang.String scriptName
         2: .line 79
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new org.graalvm.tools.insight.test.InsightObjectFactory$AgentRootNode
            dup
            invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.getCurrentLanguage:()Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
            aload 3 /* scriptName */
            aload 2 /* source */
            invokespecial org.graalvm.tools.insight.test.InsightObjectFactory$AgentRootNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/String;Lcom/oracle/truffle/api/source/Source;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            areturn
        end local 3 // java.lang.String scriptName
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
        end local 0 // org.graalvm.tools.insight.test.InsightObjectFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/tools/insight/test/InsightObjectFactory;
            0    3     1     request  Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;
            1    3     2      source  Lcom/oracle/truffle/api/source/Source;
            2    3     3  scriptName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  public static org.graalvm.polyglot.Value createAgentObject(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)Lorg/graalvm/polyglot/Value;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.graalvm.polyglot.Context context
         0: .line 84
            invokestatic org.graalvm.tools.insight.test.InsightObjectFactory.cleanAgentObject:()V
         1: .line 85
            new org.graalvm.tools.insight.test.InsightObjectFactory
            dup
            invokespecial org.graalvm.tools.insight.test.InsightObjectFactory.<init>:()V
            invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.setDelegate:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
            pop
         2: .line 89
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: invokestatic org.graalvm.tools.insight.test.InsightObjectFactory.createAgentSource:()Lorg/graalvm/polyglot/Source;
            aload 0 /* context */
            invokestatic org.graalvm.tools.insight.test.Embedding.enableInsight:(Lorg/graalvm/polyglot/Source;Lorg/graalvm/polyglot/Context;)Ljava/lang/AutoCloseable;
            astore 4 /* handle */
        start local 4 // java.lang.AutoCloseable handle
         4: .line 90
            aload 0 /* context */
            ldc "proxyLanguage"
            ldc ""
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            astore 1 /* value */
        start local 1 // org.graalvm.polyglot.Value value
         5: .line 91
            ldc "Agent object has been initialized"
            getstatic org.graalvm.tools.insight.test.InsightObjectFactory.insightObject:Lcom/oracle/truffle/api/interop/TruffleObject;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 92
            aload 4 /* handle */
            ifnull 12
            aload 4 /* handle */
            invokeinterface java.lang.AutoCloseable.close:()V
            goto 12
        end local 1 // org.graalvm.polyglot.Value value
      StackMap locals: org.graalvm.polyglot.Context top java.lang.Throwable java.lang.Throwable java.lang.AutoCloseable
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 4 /* handle */
            ifnull 8
            aload 4 /* handle */
            invokeinterface java.lang.AutoCloseable.close:()V
        end local 4 // java.lang.AutoCloseable handle
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
        start local 1 // org.graalvm.polyglot.Value value
        12: .line 94
      StackMap locals: org.graalvm.polyglot.Context org.graalvm.polyglot.Value
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 1 // org.graalvm.polyglot.Value value
        end local 0 // org.graalvm.polyglot.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0  context  Lorg/graalvm/polyglot/Context;
            5    7     1    value  Lorg/graalvm/polyglot/Value;
           12   13     1    value  Lorg/graalvm/polyglot/Value;
            4    8     4   handle  Ljava/lang/AutoCloseable;
      Exception table:
        from    to  target  type
           4     6       7  any
           3     9       9  any
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      context  

  static void cleanAgentObject();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 98
            aconst_null
            putstatic org.graalvm.tools.insight.test.InsightObjectFactory.insightObject:Lcom/oracle/truffle/api/interop/TruffleObject;
         1: .line 99
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.graalvm.polyglot.Source createAgentSource();
    descriptor: ()Lorg/graalvm/polyglot/Source;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 102
            ldc "proxyLanguage"
            ldc ""
            ldc "agent.px"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "InsightObjectFactory.java"
NestMembers:
  org.graalvm.tools.insight.test.InsightObjectFactory$AgentRootNode  org.graalvm.tools.insight.test.InsightObjectFactory$ValueNode
InnerClasses:
  public final ParsingRequest = com.oracle.truffle.api.TruffleLanguage$ParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source
  public OnConfig = org.graalvm.tools.insight.test.InsightAPI$OnConfig of org.graalvm.tools.insight.test.InsightAPI
  public abstract SourceInfo = org.graalvm.tools.insight.test.InsightAPI$SourceInfo of org.graalvm.tools.insight.test.InsightAPI
  private AgentRootNode = org.graalvm.tools.insight.test.InsightObjectFactory$AgentRootNode of org.graalvm.tools.insight.test.InsightObjectFactory
  ValueNode = org.graalvm.tools.insight.test.InsightObjectFactory$ValueNode of org.graalvm.tools.insight.test.InsightObjectFactory