public class com.oracle.truffle.js.test.nashorn.JSONWriterTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.test.nashorn.JSONWriterTest
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.nashorn.JSONWriterTest this
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.nashorn.JSONWriterTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/nashorn/JSONWriterTest;

  private static java.lang.String testIntl(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String sourceText
         0: .line 55
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            ldc "js.nashorn-compat"
            ldc "true"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 3 /* context */
        start local 3 // org.graalvm.polyglot.Context context
         2: .line 56
            aload 3 /* context */
            ldc "js"
            aload 0 /* sourceText */
            ldc "json-writer-test"
            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;
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 4 /* result */
        start local 4 // org.graalvm.polyglot.Value result
         3: .line 57
            aload 4 /* result */
            invokevirtual org.graalvm.polyglot.Value.isString:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 58
            aload 4 /* result */
            invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
         5: .line 59
            aload 3 /* context */
            ifnull 6
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
         6: .line 58
      StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context org.graalvm.polyglot.Value
      StackMap stack: java.lang.String
            areturn
        end local 4 // org.graalvm.polyglot.Value result
      StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         7: astore 1
         8: .line 59
            aload 3 /* context */
            ifnull 9
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 3 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
         9: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 2
            aload 1
            ifnonnull 11
            aload 2
            astore 1
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 1
            aload 2
            if_acmpeq 12
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 1
            athrow
        end local 0 // java.lang.String sourceText
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0  sourceText  Ljava/lang/String;
            2    9     3     context  Lorg/graalvm/polyglot/Context;
            3    7     4      result  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           2     5       7  any
           1     6      10  any
           7    10      10  any
    MethodParameters:
            Name  Flags
      sourceText  

  public void testParseToJSON();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.test.nashorn.JSONWriterTest this
         0: .line 64
            ldc "var a=0;; const b={a:'foo'}; let c=[1,2,3]; var r=/a/g; label: function foo(){ var x=a?b:c; x+=3;x=1*2+(3-4)/5*Math.sqrt(5);while(true) { if (true) { break; } else { continue; }; }; for (var i=0;i<10;i++); for (var x in Object); return ++a+b.a; };foo(c[0],c.a); try{ switch(a) { case 0: { with (b) {}; break; } default: throw 'hallo'; }; } catch (e) { }"
            astore 1 /* source */
        start local 1 // java.lang.String source
         1: .line 67
            new java.lang.StringBuilder
            dup
            ldc "parseToJSON(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* source */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\",'test','test2')"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.test.nashorn.JSONWriterTest.testIntl:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* result */
        start local 2 // java.lang.String result
         2: .line 68
            aload 2 /* result */
            ldc "{\"loc\":{\"source\":\"test\",\"start\":"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 69
            return
        end local 2 // java.lang.String result
        end local 1 // java.lang.String source
        end local 0 // com.oracle.truffle.js.test.nashorn.JSONWriterTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/test/nashorn/JSONWriterTest;
            1    4     1  source  Ljava/lang/String;
            2    4     2  result  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "JSONWriterTest.java"
InnerClasses:
  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