public class com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef extends com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef
  super_class: com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef
{
  protected final com.oracle.truffle.api.frame.FrameSlot frameSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final boolean checkTDZ;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final com.oracle.truffle.js.parser.env.Environment this$0;
    descriptor: Lcom/oracle/truffle/js/parser/env/Environment;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(com.oracle.truffle.js.parser.env.Environment, com.oracle.truffle.api.frame.FrameSlot, int, int, java.lang.String, com.oracle.truffle.js.parser.env.Environment);
    descriptor: (Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/api/frame/FrameSlot;IILjava/lang/String;Lcom/oracle/truffle/js/parser/env/Environment;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
        start local 2 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        start local 3 // int scopeLevel
        start local 4 // int frameLevel
        start local 5 // java.lang.String name
        start local 6 // com.oracle.truffle.js.parser.env.Environment current
         0: .line 691
            aload 0 /* this */
            aload 1
            aload 2 /* frameSlot */
            iload 3 /* scopeLevel */
            iload 4 /* frameLevel */
            aload 5 /* name */
            aload 6 /* current */
            aload 2 /* frameSlot */
            iload 4 /* frameLevel */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.needsTemporalDeadZoneCheck:(Lcom/oracle/truffle/api/frame/FrameSlot;I)Z
            invokespecial com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/api/frame/FrameSlot;IILjava/lang/String;Lcom/oracle/truffle/js/parser/env/Environment;Z)V
         1: .line 692
            return
        end local 6 // com.oracle.truffle.js.parser.env.Environment current
        end local 5 // java.lang.String name
        end local 4 // int frameLevel
        end local 3 // int scopeLevel
        end local 2 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;
            0    2     2   frameSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            0    2     3  scopeLevel  I
            0    2     4  frameLevel  I
            0    2     5        name  Ljava/lang/String;
            0    2     6     current  Lcom/oracle/truffle/js/parser/env/Environment;
    MethodParameters:
            Name  Flags
      this$0      final
      frameSlot   
      scopeLevel  
      frameLevel  
      name        
      current     

  public void <init>(com.oracle.truffle.js.parser.env.Environment, com.oracle.truffle.api.frame.FrameSlot, int, int, java.lang.String, com.oracle.truffle.js.parser.env.Environment, boolean);
    descriptor: (Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/api/frame/FrameSlot;IILjava/lang/String;Lcom/oracle/truffle/js/parser/env/Environment;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=8
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
        start local 2 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        start local 3 // int scopeLevel
        start local 4 // int frameLevel
        start local 5 // java.lang.String name
        start local 6 // com.oracle.truffle.js.parser.env.Environment current
        start local 7 // boolean checkTDZ
         0: .line 694
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
         1: .line 695
            aload 0 /* this */
            aload 1
            iload 3 /* scopeLevel */
            iload 4 /* frameLevel */
            aload 5 /* name */
            aload 6 /* current */
            invokespecial com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;IILjava/lang/String;Lcom/oracle/truffle/js/parser/env/Environment;)V
         2: .line 696
            aload 0 /* this */
            aload 2 /* frameSlot */
            putfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         3: .line 697
            aload 0 /* this */
            iload 7 /* checkTDZ */
            putfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.checkTDZ:Z
         4: .line 698
            return
        end local 7 // boolean checkTDZ
        end local 6 // com.oracle.truffle.js.parser.env.Environment current
        end local 5 // java.lang.String name
        end local 4 // int frameLevel
        end local 3 // int scopeLevel
        end local 2 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;
            0    5     2   frameSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            0    5     3  scopeLevel  I
            0    5     4  frameLevel  I
            0    5     5        name  Ljava/lang/String;
            0    5     6     current  Lcom/oracle/truffle/js/parser/env/Environment;
            0    5     7    checkTDZ  Z
    MethodParameters:
            Name  Flags
      this$0      final
      frameSlot   
      scopeLevel  
      frameLevel  
      name        
      current     
      checkTDZ    

  public com.oracle.truffle.api.frame.FrameSlot getFrameSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
         0: .line 702
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;

  public boolean isConst();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
         0: .line 707
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.isConst:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;

  public com.oracle.truffle.js.nodes.JavaScriptNode createReadNode();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
         0: .line 712
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.scopeLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.checkTDZ:Z
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createLocal:(Lcom/oracle/truffle/api/frame/FrameSlot;IIZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 1 /* readNode */
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
         1: .line 713
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.isImportBinding:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ifeq 3
         2: .line 714
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
            getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* readNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadImportBinding:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 716
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 1 /* readNode */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;
            1    4     1  readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;

  public com.oracle.truffle.js.nodes.JavaScriptNode createWriteNode(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
         0: .line 721
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
            getfield com.oracle.truffle.js.parser.env.Environment.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.scopeLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.current:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getBlockFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.scopeLevel:I
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParentSlots:(II)[Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 1 /* rhs */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.checkTDZ:Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWriteFrameSlot:(Lcom/oracle/truffle/api/frame/FrameSlot;IILcom/oracle/truffle/api/frame/FrameDescriptor;[Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;
            0    1     1   rhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      rhs   

  public com.oracle.truffle.js.parser.env.Environment$VarRef withTDZCheck();
    descriptor: ()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
         0: .line 726
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.checkTDZ:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.hasTemporalDeadZone:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ifne 2
         1: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         2: .line 729
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.this$0:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.scopeLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.frameLevel:I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.current:Lcom/oracle/truffle/js/parser/env/Environment;
            iconst_1
            invokespecial com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/api/frame/FrameSlot;IILjava/lang/String;Lcom/oracle/truffle/js/parser/env/Environment;Z)V
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;

  public boolean hasTDZCheck();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
         0: .line 734
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.checkTDZ:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;
}
SourceFile: "Environment.java"
NestHost: com.oracle.truffle.js.parser.env.Environment
InnerClasses:
  public abstract AbstractFrameVarRef = com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef of com.oracle.truffle.js.parser.env.Environment
  public FrameSlotVarRef = com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef of com.oracle.truffle.js.parser.env.Environment
  public abstract VarRef = com.oracle.truffle.js.parser.env.Environment$VarRef of com.oracle.truffle.js.parser.env.Environment