public abstract class com.oracle.js.parser.ir.Node implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.js.parser.ir.Node
  super_class: java.lang.Object
{
  protected final int start;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int finish;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final long token;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(long, int);
    descriptor: (JI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // long token
        start local 3 // int finish
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 72
            aload 0 /* this */
            lload 1 /* token */
            putfield com.oracle.js.parser.ir.Node.token:J
         2: .line 73
            aload 0 /* this */
            lload 1 /* token */
            invokestatic com.oracle.js.parser.Token.descPosition:(J)I
            putfield com.oracle.js.parser.ir.Node.start:I
         3: .line 74
            aload 0 /* this */
            iload 3 /* finish */
            putfield com.oracle.js.parser.ir.Node.finish:I
         4: .line 75
            return
        end local 3 // int finish
        end local 1 // long token
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/js/parser/ir/Node;
            0    5     1   token  J
            0    5     3  finish  I
    MethodParameters:
        Name  Flags
      token   final
      finish  final

  protected void <init>(long, int, int);
    descriptor: (JII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // long token
        start local 3 // int start
        start local 4 // int finish
         0: .line 84
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            iload 3 /* start */
            putfield com.oracle.js.parser.ir.Node.start:I
         2: .line 86
            aload 0 /* this */
            iload 4 /* finish */
            putfield com.oracle.js.parser.ir.Node.finish:I
         3: .line 87
            aload 0 /* this */
            lload 1 /* token */
            putfield com.oracle.js.parser.ir.Node.token:J
         4: .line 88
            return
        end local 4 // int finish
        end local 3 // int start
        end local 1 // long token
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/js/parser/ir/Node;
            0    5     1   token  J
            0    5     3   start  I
            0    5     4  finish  I
    MethodParameters:
        Name  Flags
      token   final
      start   final
      finish  final

  protected void <init>(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // com.oracle.js.parser.ir.Node node
         0: .line 95
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 96
            aload 0 /* this */
            aload 1 /* node */
            getfield com.oracle.js.parser.ir.Node.token:J
            putfield com.oracle.js.parser.ir.Node.token:J
         2: .line 97
            aload 0 /* this */
            aload 1 /* node */
            getfield com.oracle.js.parser.ir.Node.start:I
            putfield com.oracle.js.parser.ir.Node.start:I
         3: .line 98
            aload 0 /* this */
            aload 1 /* node */
            getfield com.oracle.js.parser.ir.Node.finish:I
            putfield com.oracle.js.parser.ir.Node.finish:I
         4: .line 99
            return
        end local 1 // com.oracle.js.parser.ir.Node node
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/js/parser/ir/Node;
            0    5     1  node  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
      Name  Flags
      node  final

  protected void <init>(com.oracle.js.parser.ir.Node, int);
    descriptor: (Lcom/oracle/js/parser/ir/Node;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // com.oracle.js.parser.ir.Node node
        start local 2 // int finish
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 108
            aload 0 /* this */
            aload 1 /* node */
            getfield com.oracle.js.parser.ir.Node.token:J
            putfield com.oracle.js.parser.ir.Node.token:J
         2: .line 109
            aload 0 /* this */
            aload 1 /* node */
            getfield com.oracle.js.parser.ir.Node.start:I
            putfield com.oracle.js.parser.ir.Node.start:I
         3: .line 110
            aload 0 /* this */
            iload 2 /* finish */
            putfield com.oracle.js.parser.ir.Node.finish:I
         4: .line 111
            return
        end local 2 // int finish
        end local 1 // com.oracle.js.parser.ir.Node node
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/js/parser/ir/Node;
            0    5     1    node  Lcom/oracle/js/parser/ir/Node;
            0    5     2  finish  I
    MethodParameters:
        Name  Flags
      node    final
      finish  final

  public boolean isLoop();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 119
            iconst_0
            ireturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public boolean isAssignment();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 129
            iconst_0
            ireturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public abstract com.oracle.js.parser.ir.Node accept(com.oracle.js.parser.ir.visitor.NodeVisitor<? extends com.oracle.js.parser.ir.LexicalContext>);
    descriptor: (Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lcom/oracle/js/parser/ir/visitor/NodeVisitor<+Lcom/oracle/js/parser/ir/LexicalContext;>;)Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
         Name  Flags
      visitor  

  public abstract <R> R accept(com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor<? extends com.oracle.js.parser.ir.LexicalContext, R>);
    descriptor: (Lcom/oracle/js/parser/ir/visitor/TranslatorNodeVisitor;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <R:Ljava/lang/Object;>(Lcom/oracle/js/parser/ir/visitor/TranslatorNodeVisitor<+Lcom/oracle/js/parser/ir/LexicalContext;TR;>;)TR;
    MethodParameters:
         Name  Flags
      visitor  

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 152
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.js.parser.ir.Node.toString:(Z)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public final java.lang.String toString(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // boolean includeTypeInfo
         0: .line 161
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 162
            aload 0 /* this */
            aload 2 /* sb */
            iload 1 /* includeTypeInfo */
            invokevirtual com.oracle.js.parser.ir.Node.toString:(Ljava/lang/StringBuilder;Z)V
         2: .line 163
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // boolean includeTypeInfo
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/js/parser/ir/Node;
            0    3     1  includeTypeInfo  Z
            1    3     2               sb  Ljava/lang/StringBuilder;
    MethodParameters:
                 Name  Flags
      includeTypeInfo  final

  public abstract void toString(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      sb         final
      printType  final

  public int getFinish();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 182
            aload 0 /* this */
            getfield com.oracle.js.parser.ir.Node.finish:I
            ireturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public int getStart();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 191
            aload 0 /* this */
            getfield com.oracle.js.parser.ir.Node.start:I
            ireturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public int getSourceOrder();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 201
            aload 0 /* this */
            invokevirtual com.oracle.js.parser.ir.Node.getStart:()I
            ireturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  protected java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 207
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 208
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 209
            new java.lang.AssertionError
            dup
            aload 1 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/js/parser/ir/Node;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  public final boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // java.lang.Object other
         0: .line 215
            aload 0 /* this */
            aload 1 /* other */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/js/parser/ir/Node;
            0    2     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  final

  public final int hashCode();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 224
            aload 0 /* this */
            getfield com.oracle.js.parser.ir.Node.token:J
            invokestatic java.lang.Long.hashCode:(J)I
            ireturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public com.oracle.js.parser.TokenType tokenType();
    descriptor: ()Lcom/oracle/js/parser/TokenType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 234
            aload 0 /* this */
            getfield com.oracle.js.parser.ir.Node.token:J
            invokestatic com.oracle.js.parser.Token.descType:(J)Lcom/oracle/js/parser/TokenType;
            areturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  public boolean isTokenType(com.oracle.js.parser.TokenType);
    descriptor: (Lcom/oracle/js/parser/TokenType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.js.parser.ir.Node this
        start local 1 // com.oracle.js.parser.TokenType type
         0: .line 244
            aload 0 /* this */
            invokevirtual com.oracle.js.parser.ir.Node.tokenType:()Lcom/oracle/js/parser/TokenType;
            aload 1 /* type */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // com.oracle.js.parser.TokenType type
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/js/parser/ir/Node;
            0    2     1  type  Lcom/oracle/js/parser/TokenType;
    MethodParameters:
      Name  Flags
      type  final

  public long getToken();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node this
         0: .line 254
            aload 0 /* this */
            getfield com.oracle.js.parser.ir.Node.token:J
            lreturn
        end local 0 // com.oracle.js.parser.ir.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/js/parser/ir/Node;

  static <T extends com.oracle.js.parser.ir.Node> java.util.List<T> accept(com.oracle.js.parser.ir.visitor.NodeVisitor<? extends com.oracle.js.parser.ir.LexicalContext>, java.util.List<T>);
    descriptor: (Lcom/oracle/js/parser/ir/visitor/NodeVisitor;Ljava/util/List;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.js.parser.ir.visitor.NodeVisitor visitor
        start local 1 // java.util.List list
         0: .line 259
            aload 1 /* list */
            invokeinterface java.util.List.size:()I
            istore 2 /* size */
        start local 2 // int size
         1: .line 260
            iload 2 /* size */
            ifne 3
         2: .line 261
            aload 1 /* list */
            areturn
         3: .line 264
      StackMap locals: int
      StackMap stack:
            aconst_null
            astore 3 /* newList */
        start local 3 // java.util.List newList
         4: .line 266
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 23
         6: .line 267
      StackMap locals: java.util.List int
      StackMap stack:
            aload 1 /* list */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Node
            astore 5 /* node */
        start local 5 // com.oracle.js.parser.ir.Node node
         7: .line 269
            aload 5 /* node */
            ifnonnull 8
            aconst_null
            goto 9
      StackMap locals: com.oracle.js.parser.ir.Node
      StackMap stack:
         8: aload 5 /* node */
            aload 0 /* visitor */
            invokevirtual com.oracle.js.parser.ir.Node.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
      StackMap locals:
      StackMap stack: com.oracle.js.parser.ir.Node
         9: astore 6 /* newNode */
        start local 6 // com.oracle.js.parser.ir.Node newNode
        10: .line 270
            aload 6 /* newNode */
            aload 5 /* node */
            if_acmpeq 20
        11: .line 271
            aload 3 /* newList */
            ifnonnull 18
        12: .line 272
            new java.util.ArrayList
            dup
            iload 2 /* size */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* newList */
        13: .line 273
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        14: goto 17
        15: .line 274
      StackMap locals: com.oracle.js.parser.ir.Node int
      StackMap stack:
            aload 3 /* newList */
            aload 1 /* list */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Node
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 273
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* j */
            iload 4 /* i */
            if_icmplt 15
        end local 7 // int j
        18: .line 277
      StackMap locals:
      StackMap stack:
            aload 3 /* newList */
            aload 6 /* newNode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 278
            goto 22
        20: .line 279
      StackMap locals:
      StackMap stack:
            aload 3 /* newList */
            ifnull 22
        21: .line 280
            aload 3 /* newList */
            aload 5 /* node */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.js.parser.ir.Node newNode
        end local 5 // com.oracle.js.parser.ir.Node node
        22: .line 266
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 4 /* i */
            iload 2 /* size */
            if_icmplt 6
        end local 4 // int i
        24: .line 285
            aload 3 /* newList */
            ifnonnull 25
            aload 1 /* list */
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 3 /* newList */
      StackMap locals:
      StackMap stack: java.util.List
        26: areturn
        end local 3 // java.util.List newList
        end local 2 // int size
        end local 1 // java.util.List list
        end local 0 // com.oracle.js.parser.ir.visitor.NodeVisitor visitor
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0  visitor  Lcom/oracle/js/parser/ir/visitor/NodeVisitor<+Lcom/oracle/js/parser/ir/LexicalContext;>;
            0   27     1     list  Ljava/util/List<TT;>;
            1   27     2     size  I
            4   27     3  newList  Ljava/util/List<TT;>;
            5   24     4        i  I
            7   22     5     node  TT;
           10   22     6  newNode  TT;
           14   18     7        j  I
    Signature: <T:Lcom/oracle/js/parser/ir/Node;>(Lcom/oracle/js/parser/ir/visitor/NodeVisitor<+Lcom/oracle/js/parser/ir/LexicalContext;>;Ljava/util/List<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
         Name  Flags
      visitor  final
      list     final

  static <T extends com.oracle.js.parser.ir.LexicalContextNode> T replaceInLexicalContext(com.oracle.js.parser.ir.LexicalContext, T, );
    descriptor: (Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/js/parser/ir/LexicalContextNode;Lcom/oracle/js/parser/ir/LexicalContextNode;)Lcom/oracle/js/parser/ir/LexicalContextNode;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.js.parser.ir.LexicalContext lc
        start local 1 // com.oracle.js.parser.ir.LexicalContextNode oldNode
        start local 2 // com.oracle.js.parser.ir.LexicalContextNode newNode
         0: .line 289
            aload 0 /* lc */
            ifnull 2
         1: .line 290
            aload 0 /* lc */
            aload 1 /* oldNode */
            aload 2 /* newNode */
            invokevirtual com.oracle.js.parser.ir.LexicalContext.replace:(Lcom/oracle/js/parser/ir/LexicalContextNode;Lcom/oracle/js/parser/ir/LexicalContextNode;)Lcom/oracle/js/parser/ir/LexicalContextNode;
            pop
         2: .line 292
      StackMap locals:
      StackMap stack:
            aload 2 /* newNode */
            areturn
        end local 2 // com.oracle.js.parser.ir.LexicalContextNode newNode
        end local 1 // com.oracle.js.parser.ir.LexicalContextNode oldNode
        end local 0 // com.oracle.js.parser.ir.LexicalContext lc
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0       lc  Lcom/oracle/js/parser/ir/LexicalContext;
            0    3     1  oldNode  TT;
            0    3     2  newNode  TT;
    Signature: <T::Lcom/oracle/js/parser/ir/LexicalContextNode;>(Lcom/oracle/js/parser/ir/LexicalContext;TT;TT;)TT;
    MethodParameters:
         Name  Flags
      lc       final
      oldNode  final
      newNode  final
}
SourceFile: "Node.java"