public final class jdk.nashorn.internal.runtime.Debug
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.Debug
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Debug this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            return
        end local 0 // jdk.nashorn.internal.runtime.Debug this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/internal/runtime/Debug;

  public static java.lang.String firstJSFrame(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 50
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: java.lang.Throwable top int int java.lang.StackTraceElement[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* ste */
        start local 1 // java.lang.StackTraceElement ste
         2: .line 51
            aload 1 /* ste */
            invokestatic jdk.nashorn.internal.runtime.ECMAErrors.isScriptFrame:(Ljava/lang/StackTraceElement;)Z
            ifeq 4
         3: .line 52
            aload 1 /* ste */
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StackTraceElement ste
         4: .line 50
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 55
            ldc "<native code>"
            areturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     t  Ljava/lang/Throwable;
            2    4     1   ste  Ljava/lang/StackTraceElement;
    MethodParameters:
      Name  Flags
      t     final

  public static java.lang.String firstJSFrame();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 64
            new java.lang.Throwable
            dup
            invokespecial java.lang.Throwable.<init>:()V
            invokestatic jdk.nashorn.internal.runtime.Debug.firstJSFrame:(Ljava/lang/Throwable;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String scriptStack();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 73
            new java.lang.Throwable
            dup
            invokespecial java.lang.Throwable.<init>:()V
            invokestatic jdk.nashorn.api.scripting.NashornException.getScriptStackString:(Ljava/lang/Throwable;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String id(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.Object x
         0: .line 84
            ldc "0x%08x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* x */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      x     final

  public static int intId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object x
         0: .line 95
            aload 0 /* x */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            ireturn
        end local 0 // java.lang.Object x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      x     final

  public static java.lang.String stackTraceElementAt(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int depth
         0: .line 105
            new java.lang.Throwable
            dup
            invokespecial java.lang.Throwable.<init>:()V
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            iload 0 /* depth */
            iconst_1
            iadd
            aaload
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            areturn
        end local 0 // int depth
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  depth  I
    MethodParameters:
       Name  Flags
      depth  final

  public static java.lang.String caller(int, int, java.lang.String[]);
    descriptor: (II[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // int depth
        start local 1 // int count
        start local 2 // java.lang.String[] ignores
         0: .line 116
            ldc ""
            astore 3 /* result */
        start local 3 // java.lang.String result
         1: .line 117
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 4 /* callers */
        start local 4 // java.lang.StackTraceElement[] callers
         2: .line 119
            iload 1 /* count */
            istore 5 /* c */
        start local 5 // int c
         3: .line 121
            iload 0 /* depth */
            iconst_1
            iadd
            istore 6 /* i */
        start local 6 // int i
         4: goto 18
         5: .line 122
      StackMap locals: int int java.lang.String[] java.lang.String java.lang.StackTraceElement[] int int
      StackMap stack:
            aload 4 /* callers */
            iload 6 /* i */
            aaload
            astore 7 /* element */
        start local 7 // java.lang.StackTraceElement element
         6: .line 123
            aload 7 /* element */
            invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
            astore 8 /* method */
        start local 8 // java.lang.String method
         7: .line 125
            aload 2 /* ignores */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 12
      StackMap locals: int int java.lang.String[] java.lang.String java.lang.StackTraceElement[] int int java.lang.StackTraceElement java.lang.String top int int java.lang.String[]
      StackMap stack:
         8: aload 12
            iload 10
            aaload
            astore 9 /* ignore */
        start local 9 // java.lang.String ignore
         9: .line 126
            aload 8 /* method */
            aload 9 /* ignore */
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ifne 11
        10: .line 127
            goto 17
        end local 9 // java.lang.String ignore
        11: .line 125
      StackMap locals:
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        12: iload 10
            iload 11
            if_icmplt 8
        13: .line 131
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.StringBuilder
            dup
            aload 8 /* method */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* element */
            invokevirtual java.lang.StackTraceElement.getLineNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        14: .line 132
            ldc "                              "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            bipush 30
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 131
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
        16: .line 133
            iinc 5 /* c */ -1
        end local 8 // java.lang.String method
        end local 7 // java.lang.StackTraceElement element
        17: .line 121
      StackMap locals: int int java.lang.String[] java.lang.String java.lang.StackTraceElement[] int int
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            aload 4 /* callers */
            arraylength
            if_icmpge 19
            iload 5 /* c */
            ifne 5
        end local 6 // int i
        19: .line 136
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 20
            ldc "<no caller>"
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 3 /* result */
      StackMap locals:
      StackMap stack: java.lang.String
        21: areturn
        end local 5 // int c
        end local 4 // java.lang.StackTraceElement[] callers
        end local 3 // java.lang.String result
        end local 2 // java.lang.String[] ignores
        end local 1 // int count
        end local 0 // int depth
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0    depth  I
            0   22     1    count  I
            0   22     2  ignores  [Ljava/lang/String;
            1   22     3   result  Ljava/lang/String;
            2   22     4  callers  [Ljava/lang/StackTraceElement;
            3   22     5        c  I
            4   19     6        i  I
            6   17     7  element  Ljava/lang/StackTraceElement;
            7   17     8   method  Ljava/lang/String;
            9   11     9   ignore  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      depth    final
      count    final
      ignores  final

  public static void dumpTokens(jdk.nashorn.internal.runtime.Source, jdk.nashorn.internal.parser.Lexer, jdk.nashorn.internal.parser.TokenStream);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/parser/Lexer;Ljdk/nashorn/internal/parser/TokenStream;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.Source source
        start local 1 // jdk.nashorn.internal.parser.Lexer lexer
        start local 2 // jdk.nashorn.internal.parser.TokenStream stream
         0: .line 150
            iconst_0
            istore 4 /* k */
        start local 4 // int k
         1: .line 152
            goto 3
         2: .line 154
      StackMap locals: jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.parser.Lexer jdk.nashorn.internal.parser.TokenStream top int
      StackMap stack:
            aload 1 /* lexer */
            invokevirtual jdk.nashorn.internal.parser.Lexer.lexify:()V
         3: .line 152
      StackMap locals:
      StackMap stack:
            iload 4 /* k */
            aload 2 /* stream */
            invokevirtual jdk.nashorn.internal.parser.TokenStream.last:()I
            if_icmpgt 2
         4: .line 157
            aload 2 /* stream */
            iload 4 /* k */
            invokevirtual jdk.nashorn.internal.parser.TokenStream.get:(I)J
            lstore 5 /* token */
        start local 5 // long token
         5: .line 158
            lload 5 /* token */
            invokestatic jdk.nashorn.internal.parser.Token.descType:(J)Ljdk/nashorn/internal/parser/TokenType;
            astore 3 /* type */
        start local 3 // jdk.nashorn.internal.parser.TokenType type
         6: .line 159
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 4 /* k */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* source */
            lload 5 /* token */
            iconst_1
            invokestatic jdk.nashorn.internal.parser.Token.toString:(Ljdk/nashorn/internal/runtime/Source;JZ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 160
            iinc 4 /* k */ 1
        end local 5 // long token
         8: .line 161
            aload 3 /* type */
            getstatic jdk.nashorn.internal.parser.TokenType.EOF:Ljdk/nashorn/internal/parser/TokenType;
            if_acmpne 3
         9: .line 162
            return
        end local 4 // int k
        end local 3 // jdk.nashorn.internal.parser.TokenType type
        end local 2 // jdk.nashorn.internal.parser.TokenStream stream
        end local 1 // jdk.nashorn.internal.parser.Lexer lexer
        end local 0 // jdk.nashorn.internal.runtime.Source source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  source  Ljdk/nashorn/internal/runtime/Source;
            0   10     1   lexer  Ljdk/nashorn/internal/parser/Lexer;
            0   10     2  stream  Ljdk/nashorn/internal/parser/TokenStream;
            6   10     3    type  Ljdk/nashorn/internal/parser/TokenType;
            1   10     4       k  I
            5    8     5   token  J
    MethodParameters:
        Name  Flags
      source  final
      lexer   final
      stream  final
}
SourceFile: "Debug.java"