public final class com.oracle.truffle.js.nodes.access.OptionalChainNode extends com.oracle.truffle.js.nodes.JavaScriptNode
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.access.OptionalChainNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptNode
{
  private com.oracle.truffle.js.nodes.JavaScriptNode accessNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private final java.lang.Object result;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(com.oracle.truffle.js.nodes.JavaScriptNode, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode chainNode
        start local 2 // java.lang.Object result
         0: .line 63
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.<init>:()V
         1: .line 64
            aload 0 /* this */
            aload 1 /* chainNode */
            putfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         2: .line 65
            aload 0 /* this */
            aload 2 /* result */
            putfield com.oracle.truffle.js.nodes.access.OptionalChainNode.result:Ljava/lang/Object;
         3: .line 66
            return
        end local 2 // java.lang.Object result
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode chainNode
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
            0    4     1  chainNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    4     2     result  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      chainNode  
      result     

  public static com.oracle.truffle.js.nodes.JavaScriptNode createTarget(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode chainNode
         0: .line 69
            aload 0 /* chainNode */
            instanceof com.oracle.truffle.js.nodes.control.DeletePropertyNode
            ifeq 1
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
      StackMap locals:
      StackMap stack: java.lang.Object
         2: astore 1 /* result */
        start local 1 // java.lang.Object result
         3: .line 70
            aload 0 /* chainNode */
            instanceof com.oracle.truffle.js.nodes.access.JSTargetableNode
            ifeq 5
         4: .line 71
            new com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode
            dup
            aload 0 /* chainNode */
            checkcast com.oracle.truffle.js.nodes.access.JSTargetableNode
            aload 1 /* result */
            invokespecial com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode.<init>:(Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;Ljava/lang/Object;)V
            areturn
         5: .line 73
      StackMap locals: java.lang.Object
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.OptionalChainNode
            dup
            aload 0 /* chainNode */
            aload 1 /* result */
            invokespecial com.oracle.truffle.js.nodes.access.OptionalChainNode.<init>:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object result
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode chainNode
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  chainNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    6     1     result  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      chainNode  

  public static com.oracle.truffle.js.nodes.JavaScriptNode createShortCircuit(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode expressionNode
         0: .line 78
            aload 0 /* expressionNode */
            instanceof com.oracle.truffle.js.nodes.access.JSTargetableNode
            ifeq 2
         1: .line 79
            new com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitTargetableNode
            dup
            aload 0 /* expressionNode */
            checkcast com.oracle.truffle.js.nodes.access.JSTargetableNode
            invokespecial com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitTargetableNode.<init>:(Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;)V
            areturn
         2: .line 81
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitNode
            dup
            aload 0 /* expressionNode */
            invokespecial com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitNode.<init>:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
            areturn
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode expressionNode
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  expressionNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                Name  Flags
      expressionNode  

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 87
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
         1: areturn
         2: .line 88
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
            pop
         3: .line 89
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.result:Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
            0    4     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
    MethodParameters:
       Name  Flags
      frame  

  public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 96
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
         1: .line 97
            goto 3
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
         2: pop
         3: .line 99
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
            0    4     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
    MethodParameters:
       Name  Flags
      frame  

  public int executeInt(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 104
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
         1: ireturn
         2: .line 105
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
            pop
         3: .line 106
            new com.oracle.truffle.api.nodes.UnexpectedResultException
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.result:Ljava/lang/Object;
            invokespecial com.oracle.truffle.api.nodes.UnexpectedResultException.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
            0    4     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      frame  

  public double executeDouble(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 113
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;)D
         1: dreturn
         2: .line 114
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
            pop
         3: .line 115
            new com.oracle.truffle.api.nodes.UnexpectedResultException
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.result:Ljava/lang/Object;
            invokespecial com.oracle.truffle.api.nodes.UnexpectedResultException.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
            0    4     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      frame  

  protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
        start local 1 // java.util.Set materializedTags
         0: .line 121
            new com.oracle.truffle.js.nodes.access.OptionalChainNode
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.OptionalChainNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.result:Ljava/lang/Object;
            invokespecial com.oracle.truffle.js.nodes.access.OptionalChainNode.<init>:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
            0    1     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  public com.oracle.truffle.js.nodes.JavaScriptNode getAccessNode();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
         0: .line 125
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.OptionalChainNode.accessNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.access.OptionalChainNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/OptionalChainNode;
}
SourceFile: "OptionalChainNode.java"
NestMembers:
  com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode  com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException  com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitNode  com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitTargetableNode
InnerClasses:
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  public final OptionalTargetableNode = com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode of com.oracle.truffle.js.nodes.access.OptionalChainNode
  private final ShortCircuitException = com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitException of com.oracle.truffle.js.nodes.access.OptionalChainNode
  public final ShortCircuitNode = com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitNode of com.oracle.truffle.js.nodes.access.OptionalChainNode
  public final ShortCircuitTargetableNode = com.oracle.truffle.js.nodes.access.OptionalChainNode$ShortCircuitTargetableNode of com.oracle.truffle.js.nodes.access.OptionalChainNode