public class com.oracle.truffle.js.parser.env.FunctionEnvironment extends com.oracle.truffle.js.parser.env.Environment
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.parser.env.FunctionEnvironment
  super_class: com.oracle.truffle.js.parser.env.Environment
{
  private static final java.lang.String RETURN_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "<return>"

  static final java.lang.String ARGUMENTS_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<arguments>"

  static final java.lang.String THIS_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<this>"

  static final java.lang.String SUPER_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<super>"

  static final java.lang.String NEW_TARGET_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<new.target>"

  static final java.lang.String YIELD_VALUE_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<yieldvalue>"

  static final java.lang.String ASYNC_CONTEXT_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<asynccontext>"

  static final java.lang.String ASYNC_RESULT_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<asyncresult>"

  private static final java.lang.String YIELD_RESULT_SLOT_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "<yieldresult>"

  static final java.lang.String DYNAMIC_SCOPE_IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "<evalscope>"

  private final com.oracle.truffle.js.parser.env.FunctionEnvironment parent;
    descriptor: Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor;
    descriptor: Lcom/oracle/truffle/api/frame/FrameDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<com.oracle.truffle.api.frame.FrameSlot> parameters;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/frame/FrameSlot;>;

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

  private com.oracle.truffle.api.frame.FrameSlot argumentsSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.frame.FrameSlot returnSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.frame.FrameSlot thisSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.frame.FrameSlot superSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.frame.FrameSlot newTargetSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.frame.FrameSlot dynamicScopeSlot;
    descriptor: Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String functionName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String internalFunctionName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean isNamedExpression;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean needsParentFrame;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean frozen;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int breakNodeCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int continueNodeCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean hasReturn;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean hasYield;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean hasAwait;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<com.oracle.truffle.js.nodes.control.BreakTarget> jumpTargetStack;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/oracle/truffle/js/nodes/control/BreakTarget;>;

  private boolean directArgumentsAccess;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

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

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

  private boolean hasRestParameter;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean simpleParameterList;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isDynamicallyScoped;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.parser.env.FunctionEnvironment.$assertionsDisabled:Z
         3: .line 68
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.truffle.js.parser.env.Environment, com.oracle.truffle.js.nodes.NodeFactory, com.oracle.truffle.js.runtime.JSContext, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZZZZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=13
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // com.oracle.truffle.js.parser.env.Environment parent
        start local 2 // com.oracle.truffle.js.nodes.NodeFactory factory
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
        start local 4 // boolean isStrictMode
        start local 5 // boolean isEval
        start local 6 // boolean isDirectEval
        start local 7 // boolean isArrowFunction
        start local 8 // boolean isGeneratorFunction
        start local 9 // boolean isDerivedConstructor
        start local 10 // boolean isAsyncFunction
        start local 11 // boolean isGlobal
        start local 12 // boolean hasSyntheticArguments
         0: .line 114
            aload 0 /* this */
            aload 1 /* parent */
            aload 2 /* factory */
            aload 3 /* context */
            invokespecial com.oracle.truffle.js.parser.env.Environment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;)V
         1: .line 82
            aload 0 /* this */
            ldc ""
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.functionName:Ljava/lang/String;
         2: .line 83
            aload 0 /* this */
            ldc ""
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.internalFunctionName:Ljava/lang/String;
         3: .line 107
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.simpleParameterList:Z
         4: .line 115
            aload 0 /* this */
            iload 6 /* isDirectEval */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:Z
         5: .line 116
            aload 0 /* this */
            iload 10 /* isAsyncFunction */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncFunction:Z
         6: .line 117
            aload 0 /* this */
            iload 4 /* isStrictMode */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isStrictMode:Z
         7: .line 118
            aload 0 /* this */
            iload 5 /* isEval */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isEval:Z
         8: .line 119
            aload 0 /* this */
            iload 7 /* isArrowFunction */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isArrowFunction:Z
         9: .line 120
            aload 0 /* this */
            iload 8 /* isGeneratorFunction */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:Z
        10: .line 121
            aload 0 /* this */
            iload 9 /* isDerivedConstructor */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isDerivedConstructor:Z
        11: .line 122
            aload 0 /* this */
            iload 11 /* isGlobal */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:Z
        12: .line 123
            aload 0 /* this */
            iload 12 /* hasSyntheticArguments */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasSyntheticArguments:Z
        13: .line 124
            aload 0 /* this */
            aload 1 /* parent */
            ifnonnull 14
            aconst_null
            goto 15
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment com.oracle.truffle.js.parser.env.Environment com.oracle.truffle.js.nodes.NodeFactory com.oracle.truffle.js.runtime.JSContext int int int int int int int int int
      StackMap stack: com.oracle.truffle.js.parser.env.FunctionEnvironment
        14: aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.function:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment com.oracle.truffle.js.parser.env.Environment com.oracle.truffle.js.nodes.NodeFactory com.oracle.truffle.js.runtime.JSContext int int int int int int int int int
      StackMap stack: com.oracle.truffle.js.parser.env.FunctionEnvironment com.oracle.truffle.js.parser.env.FunctionEnvironment
        15: putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parent:Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
        16: .line 126
            aload 0 /* this */
            aload 2 /* factory */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frameDescriptor:Lcom/oracle/truffle/api/frame/FrameDescriptor;
        17: .line 127
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
        18: .line 128
            aload 0 /* this */
            iload 6 /* isDirectEval */
            ifne 20
            aload 1 /* parent */
            ifnull 19
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.function:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            ifnull 19
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.function:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.inDirectEval:()Z
            ifne 20
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.parser.env.FunctionEnvironment
        19: iconst_0
            goto 21
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.parser.env.FunctionEnvironment
        20: iconst_1
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment com.oracle.truffle.js.parser.env.Environment com.oracle.truffle.js.nodes.NodeFactory com.oracle.truffle.js.runtime.JSContext int int int int int int int int int
      StackMap stack: com.oracle.truffle.js.parser.env.FunctionEnvironment int
        21: putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.inDirectEval:Z
        22: .line 129
            return
        end local 12 // boolean hasSyntheticArguments
        end local 11 // boolean isGlobal
        end local 10 // boolean isAsyncFunction
        end local 9 // boolean isDerivedConstructor
        end local 8 // boolean isGeneratorFunction
        end local 7 // boolean isArrowFunction
        end local 6 // boolean isDirectEval
        end local 5 // boolean isEval
        end local 4 // boolean isStrictMode
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.nodes.NodeFactory factory
        end local 1 // com.oracle.truffle.js.parser.env.Environment parent
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   23     0                   this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0   23     1                 parent  Lcom/oracle/truffle/js/parser/env/Environment;
            0   23     2                factory  Lcom/oracle/truffle/js/nodes/NodeFactory;
            0   23     3                context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   23     4           isStrictMode  Z
            0   23     5                 isEval  Z
            0   23     6           isDirectEval  Z
            0   23     7        isArrowFunction  Z
            0   23     8    isGeneratorFunction  Z
            0   23     9   isDerivedConstructor  Z
            0   23    10        isAsyncFunction  Z
            0   23    11               isGlobal  Z
            0   23    12  hasSyntheticArguments  Z
    MethodParameters:
                       Name  Flags
      parent                 
      factory                
      context                
      isStrictMode           
      isEval                 
      isDirectEval           
      isArrowFunction        
      isGeneratorFunction    
      isDerivedConstructor   
      isAsyncFunction        
      isGlobal               
      hasSyntheticArguments  

  public com.oracle.truffle.js.parser.env.FunctionEnvironment function();
    descriptor: ()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 133
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot declareLocalVar(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object name
         0: .line 138
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 1 /* name */
            getstatic com.oracle.truffle.api.frame.FrameSlotKind.Illegal:Lcom/oracle/truffle/api/frame/FrameSlotKind;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findOrAddFrameSlot:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/FrameSlotKind;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 1 // java.lang.Object name
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    1     1  name  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      name  

  public com.oracle.truffle.api.frame.FrameSlot declareVar(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object name
         0: .line 143
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            ifeq 2
         1: .line 144
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aload 1 /* name */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frozen:Z
            ifeq 4
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 1 /* name */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 4
         3: .line 147
            invokestatic com.oracle.truffle.js.parser.env.FunctionEnvironment.errorFrozenEnv:()Ljava/lang/RuntimeException;
            athrow
         4: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 1 // java.lang.Object name
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    5     1  name  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      name  

  public com.oracle.truffle.api.frame.FrameSlot reserveArgumentsSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 153
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.argumentsSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 2
         1: .line 154
            aload 0 /* this */
            aload 0 /* this */
            ldc "<arguments>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.argumentsSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.argumentsSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getReturnSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 160
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.returnSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 2
         1: .line 161
            aload 0 /* this */
            aload 0 /* this */
            ldc "<return>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.returnSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         2: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.returnSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void reserveThisSlot();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 167
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.thisSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 2
         1: .line 168
            aload 0 /* this */
            aload 0 /* this */
            ldc "<this>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.thisSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         2: .line 170
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void reserveNewTargetSlot();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 173
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.newTargetSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 2
         1: .line 174
            aload 0 /* this */
            aload 0 /* this */
            ldc "<new.target>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.newTargetSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         2: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getAsyncResultSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 179
            aload 0 /* this */
            ldc "<asyncresult>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getAsyncContextSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 183
            aload 0 /* this */
            ldc "<asynccontext>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getYieldResultSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 187
            aload 0 /* this */
            ldc "<yieldresult>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getThisSlot();
    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.FunctionEnvironment this
         0: .line 191
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.thisSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot reserveDynamicScopeSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 195
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.dynamicScopeSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 2
         1: .line 196
            aload 0 /* this */
            aload 0 /* this */
            ldc "<evalscope>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.dynamicScopeSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.dynamicScopeSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isEval();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 202
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isEval:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isArrowFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 206
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isArrowFunction:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isGeneratorFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 210
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  protected com.oracle.truffle.api.frame.FrameSlot findBlockFrameSlot(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.String name
         0: .line 215
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 1 /* name */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public boolean hasLocalVar(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.String name
         0: .line 220
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getIdentifiers:()Ljava/util/Set;
            aload 1 /* name */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private <T extends com.oracle.truffle.js.nodes.control.BreakTarget> T pushJumpTarget();
    descriptor: (Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // com.oracle.truffle.js.nodes.control.BreakTarget target
         0: .line 224
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            ifnonnull 2
         1: .line 225
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
         2: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            aload 1 /* target */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 228
            aload 1 /* target */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.control.BreakTarget target
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    4     1  target  TT;
    Signature: <T:Lcom/oracle/truffle/js/nodes/control/BreakTarget;>(TT;)TT;
    MethodParameters:
        Name  Flags
      target  

  private void popJumpTarget(com.oracle.truffle.js.nodes.control.BreakTarget);
    descriptor: (Lcom/oracle/truffle/js/nodes/control/BreakTarget;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // com.oracle.truffle.js.nodes.control.BreakTarget target
         0: .line 232
            getstatic com.oracle.truffle.js.parser.env.FunctionEnvironment.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 1 /* target */
            if_acmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
         3: .line 234
            return
        end local 1 // com.oracle.truffle.js.nodes.control.BreakTarget target
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    4     1  target  Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    MethodParameters:
        Name  Flags
      target  

  public com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable<com.oracle.truffle.js.nodes.control.ContinueTarget> pushContinueTarget();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object label
         0: .line 237
            aload 1 /* label */
            iconst_m1
            invokestatic com.oracle.truffle.js.nodes.control.ContinueTarget.forLoop:(Ljava/lang/Object;I)Lcom/oracle/truffle/js/nodes/control/ContinueTarget;
            astore 2 /* target */
        start local 2 // com.oracle.truffle.js.nodes.control.ContinueTarget target
         1: .line 238
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.pushJumpTarget:(Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            pop
         2: .line 239
            new com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
            dup
            aload 0 /* this */
            aload 2 /* target */
            invokespecial com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.<init>:(Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;Lcom/oracle/truffle/js/nodes/control/BreakTarget;)V
            areturn
        end local 2 // com.oracle.truffle.js.nodes.control.ContinueTarget target
        end local 1 // java.lang.Object label
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    3     1   label  Ljava/lang/Object;
            1    3     2  target  Lcom/oracle/truffle/js/nodes/control/ContinueTarget;
    Signature: (Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
    MethodParameters:
       Name  Flags
      label  

  public com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable<com.oracle.truffle.js.nodes.control.BreakTarget> pushBreakTarget();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object label
         0: .line 243
            aload 1 /* label */
            ifnonnull 1
            invokestatic com.oracle.truffle.js.nodes.control.BreakTarget.forSwitch:()Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* label */
            iconst_m1
            invokestatic com.oracle.truffle.js.nodes.control.BreakTarget.forLabel:(Ljava/lang/Object;I)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.control.BreakTarget
         2: astore 2 /* target */
        start local 2 // com.oracle.truffle.js.nodes.control.BreakTarget target
         3: .line 244
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.pushJumpTarget:(Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            pop
         4: .line 245
            new com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
            dup
            aload 0 /* this */
            aload 2 /* target */
            invokespecial com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.<init>:(Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;Lcom/oracle/truffle/js/nodes/control/BreakTarget;)V
            areturn
        end local 2 // com.oracle.truffle.js.nodes.control.BreakTarget target
        end local 1 // java.lang.Object label
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    5     1   label  Ljava/lang/Object;
            3    5     2  target  Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    Signature: (Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/BreakTarget;>;
    MethodParameters:
       Name  Flags
      label  

  public com.oracle.truffle.js.nodes.control.BreakTarget findBreakTarget(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object label
         0: .line 249
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.breakNodeCount:I
            iconst_1
            iadd
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.breakNodeCount:I
         1: .line 250
            aload 0 /* this */
            aload 1 /* label */
            ldc Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.findJumpTarget:(Ljava/lang/Object;Ljava/lang/Class;Z)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            areturn
        end local 1 // java.lang.Object label
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  label  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      label  

  public com.oracle.truffle.js.nodes.control.ContinueTarget findContinueTarget(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/control/ContinueTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object label
         0: .line 254
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.continueNodeCount:I
            iconst_1
            iadd
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.continueNodeCount:I
         1: .line 255
            aload 0 /* this */
            aload 1 /* label */
            ldc Lcom/oracle/truffle/js/nodes/control/ContinueTarget;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.findJumpTarget:(Ljava/lang/Object;Ljava/lang/Class;Z)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            checkcast com.oracle.truffle.js.nodes.control.ContinueTarget
            areturn
        end local 1 // java.lang.Object label
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  label  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      label  

  private <T extends com.oracle.truffle.js.nodes.control.BreakTarget> T findJumpTarget(, java.lang.Class<T>, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Z)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.Object label
        start local 2 // java.lang.Class targetClass
        start local 3 // boolean direct
         0: .line 259
            aconst_null
            astore 4 /* applicableTarget */
        start local 4 // com.oracle.truffle.js.nodes.control.BreakTarget applicableTarget
         1: .line 260
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.jumpTargetStack:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 5 /* iterator */
        start local 5 // java.util.ListIterator iterator
         2: goto 14
         3: .line 261
      StackMap locals: com.oracle.truffle.js.nodes.control.BreakTarget java.util.ListIterator
      StackMap stack:
            aload 5 /* iterator */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.control.BreakTarget
            astore 6 /* target */
        start local 6 // com.oracle.truffle.js.nodes.control.BreakTarget target
         4: .line 262
            iload 3 /* direct */
            ifne 5
            aload 1 /* label */
            ifnonnull 8
         5: .line 264
      StackMap locals: com.oracle.truffle.js.nodes.control.BreakTarget
      StackMap stack:
            aload 1 /* label */
            ifnull 6
            aload 1 /* label */
            aload 6 /* target */
            invokevirtual com.oracle.truffle.js.nodes.control.BreakTarget.getLabel:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
         6: .line 265
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            aload 6 /* target */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 14
         7: .line 266
            aload 2 /* targetClass */
            aload 6 /* target */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.control.BreakTarget
            areturn
         8: .line 270
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.env.FunctionEnvironment.$assertionsDisabled:Z
            ifne 9
            iload 3 /* direct */
            ifeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 272
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            aload 6 /* target */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 273
            aload 2 /* targetClass */
            aload 6 /* target */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.control.BreakTarget
            astore 4 /* applicableTarget */
        11: .line 275
      StackMap locals:
      StackMap stack:
            aload 1 /* label */
            aload 6 /* target */
            invokevirtual com.oracle.truffle.js.nodes.control.BreakTarget.getLabel:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 276
            getstatic com.oracle.truffle.js.parser.env.FunctionEnvironment.$assertionsDisabled:Z
            ifne 13
            aload 4 /* applicableTarget */
            ifnonnull 13
            new java.lang.AssertionError
            dup
            ldc "Illegal or duplicate label"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        13: .line 277
      StackMap locals:
      StackMap stack:
            aload 4 /* applicableTarget */
            areturn
        end local 6 // com.oracle.truffle.js.nodes.control.BreakTarget target
        14: .line 260
      StackMap locals:
      StackMap stack:
            aload 5 /* iterator */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 3
        end local 5 // java.util.ListIterator iterator
        15: .line 281
            new java.util.NoSuchElementException
            dup
            ldc "jump target not found"
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // com.oracle.truffle.js.nodes.control.BreakTarget applicableTarget
        end local 3 // boolean direct
        end local 2 // java.lang.Class targetClass
        end local 1 // java.lang.Object label
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0   16     1             label  Ljava/lang/Object;
            0   16     2       targetClass  Ljava/lang/Class<TT;>;
            0   16     3            direct  Z
            1   16     4  applicableTarget  TT;
            2   15     5          iterator  Ljava/util/ListIterator<Lcom/oracle/truffle/js/nodes/control/BreakTarget;>;
            4   14     6            target  Lcom/oracle/truffle/js/nodes/control/BreakTarget;
    Signature: <T:Lcom/oracle/truffle/js/nodes/control/BreakTarget;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;Z)TT;
    MethodParameters:
             Name  Flags
      label        
      targetClass  
      direct       

  public boolean hasReturn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 285
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasReturn:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void addReturn();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 289
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasReturn:Z
         1: .line 290
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean hasAwait();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 293
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasAwait:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void addAwait();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 297
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasAwait:Z
         1: .line 298
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean hasYield();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 301
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasYield:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void addYield();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 305
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasYield:Z
         1: .line 306
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void setDirectArgumentsAccess(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // boolean directArgumentsAccess
         0: .line 309
            aload 0 /* this */
            iload 1 /* directArgumentsAccess */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.directArgumentsAccess:Z
         1: .line 310
            return
        end local 1 // boolean directArgumentsAccess
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  directArgumentsAccess  Z
    MethodParameters:
                       Name  Flags
      directArgumentsAccess  

  public boolean isDirectArgumentsAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 313
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.directArgumentsAccess:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final int getParameterCount();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 317
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final java.util.List<com.oracle.truffle.api.frame.FrameSlot> getParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 321
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/api/frame/FrameSlot;>;

  public final void declareParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.String name
         0: .line 325
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 326
            return
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  protected final boolean isParam(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // com.oracle.truffle.api.frame.FrameSlot slot
         0: .line 329
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            aload 1 /* slot */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // com.oracle.truffle.api.frame.FrameSlot slot
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    1     1  slot  Lcom/oracle/truffle/api/frame/FrameSlot;
    MethodParameters:
      Name  Flags
      slot  

  protected final int getParameterIndex(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // com.oracle.truffle.api.frame.FrameSlot slot
         0: .line 333
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 334
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 1 /* slot */
            if_acmpne 4
         3: .line 335
            iload 2 /* i */
            ireturn
         4: .line 333
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            ifge 2
        end local 2 // int i
         6: .line 338
            iconst_m1
            ireturn
        end local 1 // com.oracle.truffle.api.frame.FrameSlot slot
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    7     1  slot  Lcom/oracle/truffle/api/frame/FrameSlot;
            1    6     2     i  I
    MethodParameters:
      Name  Flags
      slot  

  public final boolean isParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.String name
         0: .line 342
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 343
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 344
            iconst_1
            ireturn
         4: .line 342
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parameters:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 2
        end local 2 // int i
         6: .line 347
            iconst_0
            ireturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    7     1  name  Ljava/lang/String;
            1    6     2     i  I
    MethodParameters:
      Name  Flags
      name  

  public final java.lang.String getFunctionName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 351
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.functionName:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final void setFunctionName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.String functionName
         0: .line 355
            aload 0 /* this */
            aload 1 /* functionName */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.functionName:Ljava/lang/String;
         1: .line 356
            return
        end local 1 // java.lang.String functionName
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  functionName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      functionName  

  public final java.lang.String getInternalFunctionName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 359
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.internalFunctionName:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final void setInternalFunctionName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // java.lang.String internalFunctionName
         0: .line 363
            aload 0 /* this */
            aload 1 /* internalFunctionName */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.internalFunctionName:Ljava/lang/String;
         1: .line 364
            return
        end local 1 // java.lang.String internalFunctionName
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  internalFunctionName  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      internalFunctionName  

  public final void setNamedFunctionExpression(boolean);
    descriptor: (Z)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // boolean isNamedExpression
         0: .line 367
            aload 0 /* this */
            iload 1 /* isNamedExpression */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isNamedExpression:Z
         1: .line 368
            return
        end local 1 // boolean isNamedExpression
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  isNamedExpression  Z
    MethodParameters:
                   Name  Flags
      isNamedExpression  

  protected final boolean isNamedFunctionExpression();
    descriptor: ()Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 371
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isNamedExpression:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final boolean needsParentFrame();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 375
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.needsParentFrame:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final void setNeedsParentFrame(boolean);
    descriptor: (Z)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // boolean needsParentFrame
         0: .line 379
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frozen:Z
            ifeq 2
            iload 1 /* needsParentFrame */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.needsParentFrame:Z
            if_icmpeq 2
         1: .line 380
            invokestatic com.oracle.truffle.js.parser.env.FunctionEnvironment.errorFrozenEnv:()Ljava/lang/RuntimeException;
            athrow
         2: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* needsParentFrame */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.needsParentFrame:Z
         3: .line 383
            return
        end local 1 // boolean needsParentFrame
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    4     1  needsParentFrame  Z
    MethodParameters:
                  Name  Flags
      needsParentFrame  

  private static java.lang.RuntimeException errorFrozenEnv();
    descriptor: ()Ljava/lang/RuntimeException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 386
            new java.lang.IllegalStateException
            dup
            ldc "frozen function environment cannot be mutated"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void freeze();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 390
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frozen:Z
            ifeq 2
         1: .line 391
            return
         2: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frozen:Z
         3: .line 394
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isFrozen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 397
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frozen:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isDeepFrozen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 401
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isFrozen:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            ifnull 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDeepFrozen:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final boolean hasArgumentsSlot();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 405
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.argumentsSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  protected final com.oracle.truffle.api.frame.FrameSlot getArgumentsSlot();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameSlot;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 409
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.argumentsSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final com.oracle.truffle.api.frame.FrameDescriptor getFunctionFrameDescriptor();
    descriptor: ()Lcom/oracle/truffle/api/frame/FrameDescriptor;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 414
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.frameDescriptor:Lcom/oracle/truffle/api/frame/FrameDescriptor;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final boolean isStrictMode();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 419
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isStrictMode:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final com.oracle.truffle.js.parser.env.FunctionEnvironment getParentFunction();
    descriptor: ()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 423
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parent:Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public final com.oracle.truffle.js.parser.env.FunctionEnvironment getParentFunction(int);
    descriptor: (I)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // int level
         0: .line 427
            getstatic com.oracle.truffle.js.parser.env.FunctionEnvironment.$assertionsDisabled:Z
            ifne 1
            iload 1 /* level */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 428
      StackMap locals:
      StackMap stack:
            iload 1 /* level */
            ifne 3
         2: .line 429
            aload 0 /* this */
            areturn
         3: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.parent:Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            iload 1 /* level */
            iconst_1
            isub
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:(I)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            areturn
        end local 1 // int level
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    4     1  level  I
    MethodParameters:
       Name  Flags
      level  

  public final com.oracle.truffle.js.parser.env.FunctionEnvironment getNonArrowParentFunction();
    descriptor: ()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 436
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isArrowFunction:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifeq 2
         1: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getNonArrowParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            areturn
         2: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot[] getParentSlots();
    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.FunctionEnvironment this
         0: .line 444
            getstatic com.oracle.truffle.js.nodes.access.ScopeFrameNode.EMPTY_FRAME_SLOT_ARRAY:[Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isGlobal();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 448
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean hasSyntheticArguments();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 452
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasSyntheticArguments:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean returnsLastStatementResult();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 456
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasSyntheticArguments:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void setIsDynamicallyScoped(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // boolean isDynamicallyScoped
         0: .line 460
            aload 0 /* this */
            iload 1 /* isDynamicallyScoped */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isDynamicallyScoped:Z
         1: .line 461
            return
        end local 1 // boolean isDynamicallyScoped
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  isDynamicallyScoped  Z
    MethodParameters:
                     Name  Flags
      isDynamicallyScoped  

  public boolean isDynamicallyScoped();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 468
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isDynamicallyScoped:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isDynamicScopeContext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 473
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDynamicallyScoped:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            ifne 1
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.parser.env.Environment.isDynamicScopeContext:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.js.parser.env.Environment getVariableEnvironment();
    descriptor: ()Lcom/oracle/truffle/js/parser/env/Environment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 478
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            ifeq 2
         1: .line 479
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getVariableEnvironment:()Lcom/oracle/truffle/js/parser/env/Environment;
            areturn
         2: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isDirectEval();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 530
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isIndirectEval();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 534
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isEval:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isCallerContextEval();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 538
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isStrictMode:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean inDirectEval();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 542
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.inDirectEval:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void reserveSuperSlot();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 546
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.superSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnonnull 2
         1: .line 547
            aload 0 /* this */
            aload 0 /* this */
            ldc "<super>"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.superSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
         2: .line 549
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getSuperSlot();
    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.FunctionEnvironment this
         0: .line 552
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.superSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public com.oracle.truffle.api.frame.FrameSlot getNewTargetSlot();
    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.FunctionEnvironment this
         0: .line 556
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.newTargetSlot:Lcom/oracle/truffle/api/frame/FrameSlot;
            areturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void setRestParameter(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // boolean restParameter
         0: .line 560
            aload 0 /* this */
            iload 1 /* restParameter */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasRestParameter:Z
         1: .line 561
            return
        end local 1 // boolean restParameter
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  restParameter  Z
    MethodParameters:
               Name  Flags
      restParameter  

  public boolean hasRestParameter();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 564
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.hasRestParameter:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public void setSimpleParameterList(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
        start local 1 // boolean simpleParameterList
         0: .line 568
            aload 0 /* this */
            iload 1 /* simpleParameterList */
            putfield com.oracle.truffle.js.parser.env.FunctionEnvironment.simpleParameterList:Z
         1: .line 569
            return
        end local 1 // boolean simpleParameterList
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    2     1  simpleParameterList  Z
    MethodParameters:
                     Name  Flags
      simpleParameterList  

  public boolean hasSimpleParameterList();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 572
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.simpleParameterList:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public int getLeadingArgumentCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 576
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getNewTargetSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public int getTrailingArgumentCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 580
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isDerivedConstructor();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 584
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isDerivedConstructor:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public int getThisFunctionLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 592
            iconst_0
            istore 1 /* level */
        start local 1 // int level
         1: .line 593
            aload 0 /* this */
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         2: goto 5
         3: .line 594
      StackMap locals: int com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 2 /* currentFunction */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNeedsParentFrame:(Z)V
         4: .line 593
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
            iinc 1 /* level */ 1
      StackMap locals:
      StackMap stack:
         5: aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isArrowFunction:()Z
            ifne 3
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 3
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         6: .line 596
            iload 1 /* level */
            ireturn
        end local 1 // int level
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            1    7     1            level  I
            2    6     2  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public int getOutermostFunctionLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 603
            iconst_0
            istore 1 /* level */
        start local 1 // int level
         1: .line 604
            aload 0 /* this */
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         2: goto 5
         3: .line 605
      StackMap locals: int com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 2 /* currentFunction */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNeedsParentFrame:(Z)V
         4: .line 604
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
            iinc 1 /* level */ 1
      StackMap locals:
      StackMap stack:
         5: aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            ifnonnull 3
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         6: .line 607
            iload 1 /* level */
            ireturn
        end local 1 // int level
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            1    7     1            level  I
            2    6     2  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isAsyncFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 611
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncFunction:Z
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;

  public boolean isAsyncGeneratorFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
         0: .line 615
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncFunction:Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.parser.env.FunctionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
}
SourceFile: "FunctionEnvironment.java"
NestMembers:
  com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
InnerClasses:
  public JumpTargetCloseable = com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable of com.oracle.truffle.js.parser.env.FunctionEnvironment