abstract class com.oracle.truffle.js.parser.GraalJSTranslator extends com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor<com.oracle.js.parser.ir.LexicalContext, com.oracle.truffle.js.nodes.JavaScriptNode>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.parser.GraalJSTranslator
  super_class: com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor
{
  public static final com.oracle.truffle.js.nodes.JavaScriptNode[] EMPTY_NODE_ARRAY;
    descriptor: [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.js.nodes.JavaScriptNode ANY_JAVA_SCRIPT_NODE;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.source.SourceSection unavailableInternalSection;
    descriptor: Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private com.oracle.truffle.js.parser.env.Environment environment;
    descriptor: Lcom/oracle/truffle/js/parser/env/Environment;
    flags: (0x0002) ACC_PRIVATE

  protected final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.oracle.truffle.js.nodes.NodeFactory factory;
    descriptor: Lcom/oracle/truffle/js/nodes/NodeFactory;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.oracle.truffle.api.source.Source source;
    descriptor: Lcom/oracle/truffle/api/source/Source;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.lang.String[] argumentNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

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

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

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

  private static volatile int[] $SWITCH_TABLE$com$oracle$js$parser$TokenType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 182
            ldc Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            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.GraalJSTranslator.$assertionsDisabled:Z
         3: .line 183
            iconst_0
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            putstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         4: .line 184
            new com.oracle.truffle.js.parser.GraalJSTranslator$1
            dup
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$1.<init>:()V
            putstatic com.oracle.truffle.js.parser.GraalJSTranslator.ANY_JAVA_SCRIPT_NODE:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         5: .line 192
            ldc "js"
            ldc "<internal>"
            ldc "<internal>"
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
         6: .line 193
            ldc "application/javascript"
         7: .line 192
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.mimeType:(Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
         8: .line 193
            iconst_1
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.internal:(Z)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.createUnavailableSection:()Lcom/oracle/truffle/api/source/SourceSection;
         9: .line 192
            putstatic com.oracle.truffle.js.parser.GraalJSTranslator.unavailableInternalSection:Lcom/oracle/truffle/api/source/SourceSection;
        10: .line 193
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.js.parser.ir.LexicalContext, com.oracle.truffle.js.nodes.NodeFactory, com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.source.Source, java.lang.String[], int, com.oracle.truffle.js.parser.env.Environment, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;ILcom/oracle/truffle/js/parser/env/Environment;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=9, args_size=9
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.LexicalContext lc
        start local 2 // com.oracle.truffle.js.nodes.NodeFactory factory
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
        start local 4 // com.oracle.truffle.api.source.Source source
        start local 5 // java.lang.String[] argumentNames
        start local 6 // int prologLength
        start local 7 // com.oracle.truffle.js.parser.env.Environment environment
        start local 8 // boolean isParentStrict
         0: .line 205
            aload 0 /* this */
            aload 1 /* lc */
            invokespecial com.oracle.js.parser.ir.visitor.TranslatorNodeVisitor.<init>:(Lcom/oracle/js/parser/ir/LexicalContext;)V
         1: .line 206
            aload 0 /* this */
            aload 3 /* context */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 207
            aload 0 /* this */
            aload 7 /* environment */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
         3: .line 208
            aload 0 /* this */
            aload 2 /* factory */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
         4: .line 209
            aload 0 /* this */
            aload 4 /* source */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.source:Lcom/oracle/truffle/api/source/Source;
         5: .line 210
            aload 0 /* this */
            aload 5 /* argumentNames */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.argumentNames:[Ljava/lang/String;
         6: .line 211
            aload 0 /* this */
            iload 8 /* isParentStrict */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.isParentStrict:Z
         7: .line 212
            aload 0 /* this */
            aload 4 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.sourceLength:I
         8: .line 213
            aload 0 /* this */
            iload 6 /* prologLength */
            putfield com.oracle.truffle.js.parser.GraalJSTranslator.prologLength:I
         9: .line 214
            return
        end local 8 // boolean isParentStrict
        end local 7 // com.oracle.truffle.js.parser.env.Environment environment
        end local 6 // int prologLength
        end local 5 // java.lang.String[] argumentNames
        end local 4 // com.oracle.truffle.api.source.Source source
        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.js.parser.ir.LexicalContext lc
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   10     1              lc  Lcom/oracle/js/parser/ir/LexicalContext;
            0   10     2         factory  Lcom/oracle/truffle/js/nodes/NodeFactory;
            0   10     3         context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   10     4          source  Lcom/oracle/truffle/api/source/Source;
            0   10     5   argumentNames  [Ljava/lang/String;
            0   10     6    prologLength  I
            0   10     7     environment  Lcom/oracle/truffle/js/parser/env/Environment;
            0   10     8  isParentStrict  Z
    MethodParameters:
                Name  Flags
      lc              
      factory         
      context         
      source          
      argumentNames   
      prologLength    
      environment     
      isParentStrict  

  protected final com.oracle.truffle.js.nodes.JavaScriptNode transform(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Node node
         0: .line 217
            aload 1 /* node */
            ifnull 2
         1: .line 218
            aload 1 /* node */
            aload 0 /* this */
            invokevirtual com.oracle.js.parser.ir.Node.accept:(Lcom/oracle/js/parser/ir/visitor/TranslatorNodeVisitor;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            areturn
         2: .line 220
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.js.parser.ir.Node node
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  node  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
      Name  Flags
      node  

  private com.oracle.truffle.js.nodes.JavaScriptNode tagStatement(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        start local 2 // com.oracle.js.parser.ir.Node parseNode
         0: .line 224
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifne 2
         1: .line 225
            aload 0 /* this */
            aload 1 /* resultNode */
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.assignSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)V
         2: .line 227
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 3
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            instanceof com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            ifeq 6
         4: .line 229
            aload 0 /* this */
            aload 1 /* resultNode */
            checkcast com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode.getDelegateNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         5: .line 230
            goto 7
         6: .line 231
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.addStatementTag:()V
         7: .line 233
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            areturn
        end local 2 // com.oracle.js.parser.ir.Node parseNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    8     1  resultNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    8     2   parseNode  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
            Name  Flags
      resultNode  
      parseNode   

  private com.oracle.truffle.js.nodes.JavaScriptNode tagExpression(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        start local 2 // com.oracle.js.parser.ir.Node parseNode
         0: .line 237
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifne 2
         1: .line 238
            aload 0 /* this */
            aload 1 /* resultNode */
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.assignSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)V
         2: .line 240
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 3
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            instanceof com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            ifeq 6
         4: .line 242
            aload 0 /* this */
            aload 1 /* resultNode */
            checkcast com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode.getDelegateNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         5: .line 243
            goto 7
         6: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.addExpressionTag:()V
         7: .line 246
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            areturn
        end local 2 // com.oracle.js.parser.ir.Node parseNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    8     1  resultNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    8     2   parseNode  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
            Name  Flags
      resultNode  
      parseNode   

  private static com.oracle.truffle.js.nodes.JavaScriptNode tagCall(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
         0: .line 250
            aload 0 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.addCallTag:()V
         1: .line 251
            aload 0 /* resultNode */
            areturn
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  resultNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      resultNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode tagBody(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        start local 2 // com.oracle.js.parser.ir.Node parseNode
         0: .line 255
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifne 2
         1: .line 256
            aload 0 /* this */
            aload 1 /* resultNode */
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.assignSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)V
         2: .line 258
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 3
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 259
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            instanceof com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            ifeq 6
         4: .line 260
            aload 0 /* this */
            aload 1 /* resultNode */
            checkcast com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode.getDelegateNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         5: .line 261
            goto 7
         6: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.addRootBodyTag:()V
         7: .line 264
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            areturn
        end local 2 // com.oracle.js.parser.ir.Node parseNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    8     1  resultNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    8     2   parseNode  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
            Name  Flags
      resultNode  
      parseNode   

  private com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction();
    descriptor: ()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 268
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.function:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.nodes.JavaScriptNode createBlock(com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
         0: .line 272
            aload 0 /* this */
            aload 1 /* statements */
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  statements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      statements  

  private com.oracle.truffle.js.nodes.JavaScriptNode createBlock(com.oracle.truffle.js.nodes.JavaScriptNode[], boolean, boolean);
    descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
        start local 2 // boolean terminal
        start local 3 // boolean expressionBlock
         0: .line 276
            iload 2 /* terminal */
            ifne 1
            iload 3 /* expressionBlock */
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 2
         1: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* statements */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* statements */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createVoidBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // boolean expressionBlock
        end local 2 // boolean terminal
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1       statements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    3     2         terminal  Z
            0    3     3  expressionBlock  Z
    MethodParameters:
                 Name  Flags
      statements       
      terminal         
      expressionBlock  

  protected final com.oracle.truffle.js.nodes.ScriptNode translateScript(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 284
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isScript:()Z
            ifne 2
         1: .line 285
            new java.lang.IllegalArgumentException
            dup
            ldc "root function node is not a script"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformFunction:(Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
            astore 2 /* functionExpression */
        start local 2 // com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode functionExpression
         3: .line 288
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* functionExpression */
            invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.getFunctionNode:()Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            invokestatic com.oracle.truffle.js.nodes.ScriptNode.fromFunctionRoot:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode functionExpression
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1        functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            3    4     2  functionExpression  Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
    MethodParameters:
              Name  Flags
      functionNode  

  protected final com.oracle.truffle.js.nodes.JavaScriptNode transformFunction(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 292
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
    MethodParameters:
              Name  Flags
      functionNode  

  protected abstract com.oracle.truffle.js.parser.GraalJSTranslator newTranslator(com.oracle.truffle.js.parser.env.Environment, com.oracle.js.parser.ir.LexicalContext);
    descriptor: (Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/js/parser/ir/LexicalContext;)Lcom/oracle/truffle/js/parser/GraalJSTranslator;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      env      
      savedLC  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterFunctionNode(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=15, locals=30, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 305
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isStrict:()Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.isParentStrict:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.function:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* isStrict */
        start local 2 // boolean isStrict
         4: .line 306
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isArrow:()Z
            istore 3 /* isArrowFunction */
        start local 3 // boolean isArrowFunction
         5: .line 307
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isGenerator:()Z
            istore 4 /* isGeneratorFunction */
        start local 4 // boolean isGeneratorFunction
         6: .line 308
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isAsync:()Z
            istore 5 /* isAsyncFunction */
        start local 5 // boolean isAsyncFunction
         7: .line 309
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isDerivedConstructor:()Z
            istore 6 /* isDerivedConstructor */
        start local 6 // boolean isDerivedConstructor
         8: .line 311
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isMethod:()Z
            istore 7 /* isMethod */
        start local 7 // boolean isMethod
         9: .line 312
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsNewTarget:()Z
            istore 8 /* needsNewTarget */
        start local 8 // boolean needsNewTarget
        10: .line 313
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isClassConstructor:()Z
            istore 9 /* isClassConstructor */
        start local 9 // boolean isClassConstructor
        11: .line 314
            iload 3 /* isArrowFunction */
            ifne 13
            iload 4 /* isGeneratorFunction */
            ifne 13
            iload 5 /* isAsyncFunction */
            ifne 13
            iload 7 /* isMethod */
            ifeq 12
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            iconst_5
            if_icmpeq 12
            iload 9 /* isClassConstructor */
            ifeq 13
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int
      StackMap stack:
        12: iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 10 /* isConstructor */
        start local 10 // boolean isConstructor
        15: .line 315
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 16
            iload 6 /* isDerivedConstructor */
            ifeq 16
            iload 10 /* isConstructor */
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 316
      StackMap locals: int
      StackMap stack:
            iload 2 /* isStrict */
            ifne 17
            iload 3 /* isArrowFunction */
            ifne 17
            iload 7 /* isMethod */
            ifne 17
            iload 4 /* isGeneratorFunction */
            ifne 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 11 /* strictFunctionProperties */
        start local 11 // boolean strictFunctionProperties
        19: .line 317
            iconst_0
            istore 12 /* isBuiltin */
        start local 12 // boolean isBuiltin
        20: .line 318
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isScript:()Z
            ifeq 21
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.argumentNames:[Ljava/lang/String;
            ifnull 21
            iconst_1
            goto 22
      StackMap locals: int int
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 13 /* hasSyntheticArguments */
        start local 13 // boolean hasSyntheticArguments
        23: .line 321
            iconst_0
            istore 15 /* isEval */
        start local 15 // boolean isEval
        24: .line 322
            iconst_0
            istore 16 /* isIndirectEval */
        start local 16 // boolean isIndirectEval
        25: .line 323
            iconst_0
            istore 17 /* inDirectEval */
        start local 17 // boolean inDirectEval
        26: .line 324
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            instanceof com.oracle.truffle.js.parser.env.EvalEnvironment
            ifeq 42
        27: .line 325
            iconst_1
            istore 15 /* isEval */
        28: .line 326
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            checkcast com.oracle.truffle.js.parser.env.EvalEnvironment
            invokevirtual com.oracle.truffle.js.parser.env.EvalEnvironment.isDirectEval:()Z
            istore 18 /* isDirectEval */
        start local 18 // boolean isDirectEval
        29: .line 327
            iload 18 /* isDirectEval */
            ifeq 30
            iconst_0
            goto 31
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int top int int int int
      StackMap stack:
        30: iconst_1
      StackMap locals:
      StackMap stack: int
        31: istore 16 /* isIndirectEval */
        32: .line 328
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParent:()Lcom/oracle/truffle/js/parser/env/Environment;
            astore 19 /* evalParent */
        start local 19 // com.oracle.truffle.js.parser.env.Environment evalParent
        33: .line 329
            aload 19 /* evalParent */
            ifnull 35
            iload 18 /* isDirectEval */
            ifeq 34
            iload 2 /* isStrict */
            ifne 34
            aload 19 /* evalParent */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.function:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 35
      StackMap locals: com.oracle.truffle.js.parser.env.Environment
      StackMap stack:
        34: iconst_0
            goto 36
      StackMap locals:
      StackMap stack:
        35: iconst_1
      StackMap locals:
      StackMap stack: int
        36: istore 14 /* isGlobal */
        start local 14 // boolean isGlobal
        37: .line 330
            iload 18 /* isDirectEval */
            ifne 39
            aload 19 /* evalParent */
            ifnull 38
            aload 19 /* evalParent */
            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 39
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int int int int int int com.oracle.truffle.js.parser.env.Environment
      StackMap stack:
        38: iconst_0
            goto 40
      StackMap locals:
      StackMap stack:
        39: iconst_1
      StackMap locals:
      StackMap stack: int
        40: istore 17 /* inDirectEval */
        end local 19 // com.oracle.truffle.js.parser.env.Environment evalParent
        end local 18 // boolean isDirectEval
        41: .line 331
            goto 55
        end local 14 // boolean isGlobal
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int top int int int
      StackMap stack:
        42: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            instanceof com.oracle.truffle.js.parser.env.DebugEnvironment
            ifeq 49
        43: .line 332
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParent:()Lcom/oracle/truffle/js/parser/env/Environment;
            ifnonnull 44
            iconst_1
            goto 45
      StackMap locals:
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: istore 14 /* isGlobal */
        start local 14 // boolean isGlobal
        46: .line 333
            iconst_1
            istore 15 /* isEval */
        47: .line 334
            iconst_1
            istore 17 /* inDirectEval */
        48: .line 335
            goto 55
        end local 14 // boolean isGlobal
        49: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            ifnonnull 50
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.argumentNames:[Ljava/lang/String;
            ifnonnull 50
            iconst_1
            goto 51
      StackMap locals:
      StackMap stack:
        50: iconst_0
      StackMap locals:
      StackMap stack: int
        51: istore 14 /* isGlobal */
        start local 14 // boolean isGlobal
        52: .line 337
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            ifnull 53
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.inDirectEval:()Z
            ifeq 53
            iconst_1
            goto 54
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int int int int int
      StackMap stack:
        53: iconst_0
      StackMap locals:
      StackMap stack: int
        54: istore 17 /* inDirectEval */
        55: .line 339
      StackMap locals:
      StackMap stack:
            iload 14 /* isGlobal */
            ifeq 57
            iload 2 /* isStrict */
            ifeq 56
            iload 16 /* isIndirectEval */
            ifne 57
      StackMap locals:
      StackMap stack:
        56: iconst_0
            goto 58
      StackMap locals:
      StackMap stack:
        57: iconst_1
      StackMap locals:
      StackMap stack: int
        58: istore 18 /* functionMode */
        start local 18 // boolean functionMode
        59: .line 341
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isLazyTranslation:()Z
            ifeq 60
            iload 18 /* functionMode */
            ifeq 60
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isProgram:()Z
            ifne 60
            iload 17 /* inDirectEval */
            ifne 60
            iconst_1
            goto 61
      StackMap locals: int
      StackMap stack:
        60: iconst_0
      StackMap locals:
      StackMap stack: int
        61: istore 19 /* lazyTranslation */
        start local 19 // boolean lazyTranslation
        62: .line 343
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getFunctionName:(Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/lang/String;
            astore 20 /* functionName */
        start local 20 // java.lang.String functionName
        63: .line 346
            iload 19 /* lazyTranslation */
            ifeq 75
        64: .line 347
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 66
            iload 18 /* functionMode */
            ifeq 65
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isProgram:()Z
            ifeq 66
      StackMap locals: int java.lang.String
      StackMap stack:
        65: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        66: .line 350
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.usesAncestorScope:()Z
            istore 23 /* needsParentFrame */
        start local 23 // boolean needsParentFrame
        67: .line 352
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getLength:()I
            aload 20 /* functionName */
            iload 10 /* isConstructor */
            iload 6 /* isDerivedConstructor */
            iload 2 /* isStrict */
            iload 12 /* isBuiltin */
        68: .line 353
            iload 23 /* needsParentFrame */
            iload 4 /* isGeneratorFunction */
            iload 5 /* isAsyncFunction */
            iload 9 /* isClassConstructor */
            iload 11 /* strictFunctionProperties */
            iload 8 /* needsNewTarget */
        69: .line 352
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;ILjava/lang/String;ZZZZZZZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 21 /* functionData */
        start local 21 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        70: .line 355
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.copy:()Lcom/oracle/js/parser/ir/LexicalContext;
            astore 24 /* savedLC */
        start local 24 // com.oracle.js.parser.ir.LexicalContext savedLC
        71: .line 356
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            astore 25 /* parentEnv */
        start local 25 // com.oracle.truffle.js.parser.env.Environment parentEnv
        72: .line 357
            aload 21 /* functionData */
            aload 0 /* this */
            aload 25 /* parentEnv */
            aload 24 /* savedLC */
            aload 1 /* functionNode */
            iload 2 /* isStrict */
            iload 3 /* isArrowFunction */
            iload 4 /* isGeneratorFunction */
            iload 5 /* isAsyncFunction */
            iload 6 /* isDerivedConstructor */
            iload 14 /* isGlobal */
            iload 8 /* needsNewTarget */
            iload 23 /* needsParentFrame */
            aload 20 /* functionName */
            iload 13 /* hasSyntheticArguments */
            invokedynamic initializeRoot(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/js/parser/ir/FunctionNode;ZZZZZZZZLjava/lang/String;Z)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
                  com/oracle/truffle/js/parser/GraalJSTranslator.lambda$0(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/js/parser/ir/FunctionNode;ZZZZZZZZLjava/lang/String;ZLcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V (7)
                  (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setLazyInit:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData$Initializer;)V
        73: .line 362
            aconst_null
            astore 22 /* functionRoot */
        end local 25 // com.oracle.truffle.js.parser.env.Environment parentEnv
        end local 24 // com.oracle.js.parser.ir.LexicalContext savedLC
        end local 23 // boolean needsParentFrame
        start local 22 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
        74: .line 363
            goto 112
        end local 22 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
        end local 21 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        75: .line 364
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 23
            aconst_null
            astore 24
        76: aload 0 /* this */
            iload 2 /* isStrict */
            iload 3 /* isArrowFunction */
            iload 4 /* isGeneratorFunction */
            iload 6 /* isDerivedConstructor */
            iload 5 /* isAsyncFunction */
            iload 14 /* isGlobal */
            iload 13 /* hasSyntheticArguments */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterFunctionEnvironment:(ZZZZZZZ)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            astore 25 /* functionEnv */
        start local 25 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable functionEnv
        77: .line 365
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 26 /* currentFunction */
        start local 26 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        78: .line 366
            aload 26 /* currentFunction */
            aload 20 /* functionName */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setFunctionName:(Ljava/lang/String;)V
        79: .line 367
            aload 26 /* currentFunction */
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getInternalName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setInternalFunctionName:(Ljava/lang/String;)V
        80: .line 368
            aload 26 /* currentFunction */
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isNamedFunctionExpression:()Z
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNamedFunctionExpression:(Z)V
        81: .line 370
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.declareParameters:(Lcom/oracle/js/parser/ir/FunctionNode;)V
        82: .line 371
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getNumOfParams:()I
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getFunctionArgumentsLimit:()J
            lcmp
            ifle 84
        83: .line 372
            ldc "function has too many arguments"
            invokestatic com.oracle.truffle.js.runtime.Errors.createSyntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        84: .line 376
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int int int int int int int java.lang.String top top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            iload 18 /* functionMode */
            ifeq 87
        85: .line 377
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.functionEnvInit:(Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/util/List;
            astore 27 /* declarations */
        start local 27 // java.util.List declarations
        86: .line 378
            goto 93
        end local 27 // java.util.List declarations
      StackMap locals:
      StackMap stack:
        87: aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isModule:()Z
            ifeq 91
        88: .line 379
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 89
            aload 26 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 89
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        89: .line 380
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            astore 27 /* declarations */
        start local 27 // java.util.List declarations
        90: .line 381
            goto 93
        end local 27 // java.util.List declarations
        91: .line 382
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 92
            aload 26 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 92
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        92: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* functionNode */
            iload 15 /* isEval */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.collectGlobalVars:(Lcom/oracle/js/parser/ir/FunctionNode;Z)Ljava/util/List;
            astore 27 /* declarations */
        start local 27 // java.util.List declarations
        93: .line 386
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isProgram:()Z
            ifeq 95
        94: .line 387
            aload 1 /* functionNode */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.functionNeedsParentFramePass:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/JSContext;)V
        95: .line 390
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.usesAncestorScope:()Z
            istore 28 /* needsParentFrame */
        start local 28 // boolean needsParentFrame
        96: .line 391
            aload 26 /* currentFunction */
            iload 28 /* needsParentFrame */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNeedsParentFrame:(Z)V
        97: .line 393
            aload 0 /* this */
            aload 1 /* functionNode */
            iload 4 /* isGeneratorFunction */
            iload 5 /* isAsyncFunction */
            iload 6 /* isDerivedConstructor */
            iload 8 /* needsNewTarget */
            aload 26 /* currentFunction */
            aload 27 /* declarations */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.translateFunctionBody:(Lcom/oracle/js/parser/ir/FunctionNode;ZZZZLcom/oracle/truffle/js/parser/env/FunctionEnvironment;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 29 /* body */
        start local 29 // com.oracle.truffle.js.nodes.JavaScriptNode body
        98: .line 395
            aload 26 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.needsParentFrame:()Z
            istore 28 /* needsParentFrame */
        99: .line 396
            aload 26 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.freeze:()V
       100: .line 398
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getLength:()I
            aload 20 /* functionName */
            iload 10 /* isConstructor */
            iload 6 /* isDerivedConstructor */
            iload 2 /* isStrict */
            iload 12 /* isBuiltin */
       101: .line 399
            iload 28 /* needsParentFrame */
            iload 4 /* isGeneratorFunction */
            iload 5 /* isAsyncFunction */
            iload 9 /* isClassConstructor */
            iload 11 /* strictFunctionProperties */
            iload 8 /* needsNewTarget */
       102: .line 398
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;ILjava/lang/String;ZZZZZZZZZZ)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            astore 21 /* functionData */
        start local 21 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
       103: .line 401
            aload 0 /* this */
            aload 1 /* functionNode */
            aload 21 /* functionData */
            aload 26 /* currentFunction */
            aload 29 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createFunctionRoot:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            astore 22 /* functionRoot */
        start local 22 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
       104: .line 403
            iload 15 /* isEval */
            ifeq 106
       105: .line 405
            aload 21 /* functionData */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            pop
        end local 29 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 28 // boolean needsParentFrame
        end local 27 // java.util.List declarations
        end local 26 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
       106: .line 407
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int int int int int int int java.lang.String com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.js.nodes.function.FunctionRootNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack:
            aload 25 /* functionEnv */
            ifnull 112
            aload 25 /* functionEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
            goto 112
        end local 22 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
        end local 21 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int int int int int int int java.lang.String top top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
       107: astore 23
            aload 25 /* functionEnv */
            ifnull 108
            aload 25 /* functionEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 25 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable functionEnv
      StackMap locals:
      StackMap stack:
       108: aload 23
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       109: astore 24
            aload 23
            ifnonnull 110
            aload 24
            astore 23
            goto 111
      StackMap locals:
      StackMap stack:
       110: aload 23
            aload 24
            if_acmpeq 111
            aload 23
            aload 24
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       111: aload 23
            athrow
        start local 21 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 22 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
       112: .line 411
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int int int int int int int int int int int int int int int java.lang.String com.oracle.truffle.js.runtime.builtins.JSFunctionData com.oracle.truffle.js.nodes.function.FunctionRootNode
      StackMap stack:
            iload 3 /* isArrowFunction */
            ifeq 116
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsThis:()Z
            ifeq 116
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getNonArrowParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDerivedConstructor:()Z
            ifne 116
       113: .line 412
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createThisNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 24 /* thisNode */
        start local 24 // com.oracle.truffle.js.nodes.JavaScriptNode thisNode
       114: .line 413
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 21 /* functionData */
            aload 22 /* functionRoot */
            aload 24 /* thisNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionExpressionLexicalThis:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
            astore 23 /* functionExpression */
        end local 24 // com.oracle.truffle.js.nodes.JavaScriptNode thisNode
        start local 23 // com.oracle.truffle.js.nodes.JavaScriptNode functionExpression
       115: .line 414
            goto 117
        end local 23 // com.oracle.truffle.js.nodes.JavaScriptNode functionExpression
       116: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 21 /* functionData */
            aload 22 /* functionRoot */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionExpression:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
            astore 23 /* functionExpression */
        start local 23 // com.oracle.truffle.js.nodes.JavaScriptNode functionExpression
       117: .line 418
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isDeclared:()Z
            ifeq 120
       118: .line 419
            aload 0 /* this */
            aload 23 /* functionExpression */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
       119: .line 420
            goto 121
       120: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 23 /* functionExpression */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 23 /* functionExpression */
       121: .line 423
      StackMap locals:
      StackMap stack:
            aload 23 /* functionExpression */
            areturn
        end local 23 // com.oracle.truffle.js.nodes.JavaScriptNode functionExpression
        end local 22 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
        end local 21 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 20 // java.lang.String functionName
        end local 19 // boolean lazyTranslation
        end local 18 // boolean functionMode
        end local 17 // boolean inDirectEval
        end local 16 // boolean isIndirectEval
        end local 15 // boolean isEval
        end local 14 // boolean isGlobal
        end local 13 // boolean hasSyntheticArguments
        end local 12 // boolean isBuiltin
        end local 11 // boolean strictFunctionProperties
        end local 10 // boolean isConstructor
        end local 9 // boolean isClassConstructor
        end local 8 // boolean needsNewTarget
        end local 7 // boolean isMethod
        end local 6 // boolean isDerivedConstructor
        end local 5 // boolean isAsyncFunction
        end local 4 // boolean isGeneratorFunction
        end local 3 // boolean isArrowFunction
        end local 2 // boolean isStrict
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0  122     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0  122     1              functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            4  122     2                  isStrict  Z
            5  122     3           isArrowFunction  Z
            6  122     4       isGeneratorFunction  Z
            7  122     5           isAsyncFunction  Z
            8  122     6      isDerivedConstructor  Z
            9  122     7                  isMethod  Z
           10  122     8            needsNewTarget  Z
           11  122     9        isClassConstructor  Z
           15  122    10             isConstructor  Z
           19  122    11  strictFunctionProperties  Z
           20  122    12                 isBuiltin  Z
           23  122    13     hasSyntheticArguments  Z
           37   42    14                  isGlobal  Z
           46   49    14                  isGlobal  Z
           52  122    14                  isGlobal  Z
           24  122    15                    isEval  Z
           25  122    16            isIndirectEval  Z
           26  122    17              inDirectEval  Z
           29   41    18              isDirectEval  Z
           33   41    19                evalParent  Lcom/oracle/truffle/js/parser/env/Environment;
           59  122    18              functionMode  Z
           62  122    19           lazyTranslation  Z
           63  122    20              functionName  Ljava/lang/String;
           70   75    21              functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
          103  107    21              functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
          112  122    21              functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
           74   75    22              functionRoot  Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
          104  107    22              functionRoot  Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
          112  122    22              functionRoot  Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
           67   74    23          needsParentFrame  Z
           71   74    24                   savedLC  Lcom/oracle/js/parser/ir/LexicalContext;
           72   74    25                 parentEnv  Lcom/oracle/truffle/js/parser/env/Environment;
           77  108    25               functionEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
           78  106    26           currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
           86   87    27              declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
           90   91    27              declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
           93  106    27              declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
           96  106    28          needsParentFrame  Z
           98  106    29                      body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
          115  116    23        functionExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
          117  122    23        functionExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
          114  115    24                  thisNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
          77   106     107  any
          76   109     109  any
    MethodParameters:
              Name  Flags
      functionNode  

  com.oracle.truffle.js.nodes.JavaScriptNode translateFunctionBody(com.oracle.js.parser.ir.FunctionNode, boolean, boolean, boolean, boolean, com.oracle.truffle.js.parser.env.FunctionEnvironment, java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode>);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;ZZZZLcom/oracle/truffle/js/parser/env/FunctionEnvironment;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0000) 
    Code:
      stack=3, locals=10, args_size=8
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 2 // boolean isGeneratorFunction
        start local 3 // boolean isAsyncFunction
        start local 4 // boolean isDerivedConstructor
        start local 5 // boolean needsNewTarget
        start local 6 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        start local 7 // java.util.List declarations
         0: .line 428
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode body
         1: .line 430
            iload 2 /* isGeneratorFunction */
            ifne 6
         2: .line 432
            aload 0 /* this */
            aload 1 /* functionNode */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.handleFunctionReturn:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
         3: .line 434
            iload 3 /* isAsyncFunction */
            ifeq 6
         4: .line 435
            aload 0 /* this */
            aload 8 /* body */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         5: .line 436
            aload 0 /* this */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.handleAsyncFunctionBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
         6: .line 440
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 7 /* declarations */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 8
         7: .line 441
            aload 0 /* this */
            aload 7 /* declarations */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prepareDeclarations:(Ljava/util/List;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
         8: .line 443
      StackMap locals:
      StackMap stack:
            aload 6 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasArgumentsSlot:()Z
            ifeq 10
            aload 6 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectArgumentsAccess:()Z
            ifne 10
            aload 6 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 10
         9: .line 444
            aload 0 /* this */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prepareArguments:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        10: .line 446
      StackMap locals:
      StackMap stack:
            aload 6 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParameterCount:()I
            ifle 12
        11: .line 447
            aload 0 /* this */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prepareParameters:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        12: .line 449
      StackMap locals:
      StackMap stack:
            aload 6 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getThisSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnull 14
            iload 4 /* isDerivedConstructor */
            ifne 14
        13: .line 450
            aload 0 /* this */
            aload 8 /* body */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prepareThis:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        14: .line 452
      StackMap locals:
      StackMap stack:
            aload 6 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getSuperSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            ifnull 16
        15: .line 453
            aload 0 /* this */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prepareSuper:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        16: .line 455
      StackMap locals:
      StackMap stack:
            iload 5 /* needsNewTarget */
            ifeq 18
        17: .line 456
            aload 0 /* this */
            aload 8 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prepareNewTarget:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        18: .line 459
      StackMap locals:
      StackMap stack:
            iload 4 /* isDerivedConstructor */
            ifeq 25
        19: .line 460
            aload 0 /* this */
        20: .line 461
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.hasDirectSuper:()Z
            ifne 21
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.hasEval:()Z
            ifne 21
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.hasArrowEval:()Z
            ifeq 22
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator
        21: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 23
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator
        22: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        23: .line 460
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int int int com.oracle.truffle.js.parser.env.FunctionEnvironment java.util.List com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.JavaScriptNode
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.checkThisBindingInitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* getThisBinding */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode getThisBinding
        24: .line 462
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 8 /* body */
            aload 9 /* getThisBinding */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDerivedConstructorResult:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* body */
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode getThisBinding
        25: .line 465
      StackMap locals:
      StackMap stack:
            aload 8 /* body */
            areturn
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 7 // java.util.List declarations
        end local 6 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 5 // boolean needsNewTarget
        end local 4 // boolean isDerivedConstructor
        end local 3 // boolean isAsyncFunction
        end local 2 // boolean isGeneratorFunction
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   26     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   26     1          functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0   26     2   isGeneratorFunction  Z
            0   26     3       isAsyncFunction  Z
            0   26     4  isDerivedConstructor  Z
            0   26     5        needsNewTarget  Z
            0   26     6       currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0   26     7          declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            1   26     8                  body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           24   25     9        getThisBinding  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Lcom/oracle/js/parser/ir/FunctionNode;ZZZZLcom/oracle/truffle/js/parser/env/FunctionEnvironment;Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                      Name  Flags
      functionNode          
      isGeneratorFunction   
      isAsyncFunction       
      isDerivedConstructor  
      needsNewTarget        
      currentFunction       
      declarations          

  private com.oracle.truffle.js.nodes.function.FunctionRootNode translateFunctionOnDemand(com.oracle.js.parser.ir.FunctionNode, com.oracle.truffle.js.runtime.builtins.JSFunctionData, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;ZZZZZZZZLjava/lang/String;Z)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=18, args_size=13
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 3 // boolean isStrict
        start local 4 // boolean isArrowFunction
        start local 5 // boolean isGeneratorFunction
        start local 6 // boolean isAsyncFunction
        start local 7 // boolean isDerivedConstructor
        start local 8 // boolean isGlobal
        start local 9 // boolean needsNewTarget
        start local 10 // boolean needsParentFrame
        start local 11 // java.lang.String functionName
        start local 12 // boolean hasSyntheticArguments
         0: .line 470
            aconst_null
            astore 13
            aconst_null
            astore 14
         1: aload 0 /* this */
            iload 3 /* isStrict */
            iload 4 /* isArrowFunction */
            iload 5 /* isGeneratorFunction */
            iload 7 /* isDerivedConstructor */
            iload 6 /* isAsyncFunction */
            iload 8 /* isGlobal */
            iload 12 /* hasSyntheticArguments */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterFunctionEnvironment:(ZZZZZZZ)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            astore 15 /* functionEnv */
        start local 15 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable functionEnv
         2: .line 471
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 16 /* currentFunction */
        start local 16 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         3: .line 472
            aload 16 /* currentFunction */
            aload 11 /* functionName */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setFunctionName:(Ljava/lang/String;)V
         4: .line 473
            aload 16 /* currentFunction */
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getInternalName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setInternalFunctionName:(Ljava/lang/String;)V
         5: .line 474
            aload 16 /* currentFunction */
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isNamedFunctionExpression:()Z
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNamedFunctionExpression:(Z)V
         6: .line 476
            aload 16 /* currentFunction */
            iload 10 /* needsParentFrame */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNeedsParentFrame:(Z)V
         7: .line 478
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.declareParameters:(Lcom/oracle/js/parser/ir/FunctionNode;)V
         8: .line 479
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getNumOfParams:()I
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getFunctionArgumentsLimit:()J
            lcmp
            ifle 10
         9: .line 480
            ldc "function has too many arguments"
            invokestatic com.oracle.truffle.js.runtime.Errors.createSyntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        10: .line 482
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode com.oracle.truffle.js.runtime.builtins.JSFunctionData int int int int int int int int java.lang.String int java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.functionEnvInit:(Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/util/List;
            pop
        11: .line 484
            aload 16 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.freeze:()V
        12: .line 485
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 13
            aload 16 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDeepFrozen:()Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* functionNode */
            iload 5 /* isGeneratorFunction */
            iload 6 /* isAsyncFunction */
            iload 7 /* isDerivedConstructor */
            iload 9 /* needsNewTarget */
            aload 16 /* currentFunction */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.translateFunctionBody:(Lcom/oracle/js/parser/ir/FunctionNode;ZZZZLcom/oracle/truffle/js/parser/env/FunctionEnvironment;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 17 /* body */
        start local 17 // com.oracle.truffle.js.nodes.JavaScriptNode body
        14: .line 488
            aload 0 /* this */
            aload 1 /* functionNode */
            aload 2 /* functionData */
            aload 16 /* currentFunction */
            aload 17 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createFunctionRoot:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
        15: .line 489
            aload 15 /* functionEnv */
            ifnull 16
            aload 15 /* functionEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        16: .line 488
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode com.oracle.truffle.js.runtime.builtins.JSFunctionData int int int int int int int int java.lang.String int java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable com.oracle.truffle.js.parser.env.FunctionEnvironment com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: com.oracle.truffle.js.nodes.function.FunctionRootNode
            areturn
        end local 17 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 16 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode com.oracle.truffle.js.runtime.builtins.JSFunctionData int int int int int int int int java.lang.String int java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        17: astore 13
        18: .line 489
            aload 15 /* functionEnv */
            ifnull 19
            aload 15 /* functionEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 15 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable functionEnv
      StackMap locals:
      StackMap stack:
        19: aload 13
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 14
            aload 13
            ifnonnull 21
            aload 14
            astore 13
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 13
            aload 14
            if_acmpeq 22
            aload 13
            aload 14
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 13
            athrow
        end local 12 // boolean hasSyntheticArguments
        end local 11 // java.lang.String functionName
        end local 10 // boolean needsParentFrame
        end local 9 // boolean needsNewTarget
        end local 8 // boolean isGlobal
        end local 7 // boolean isDerivedConstructor
        end local 6 // boolean isAsyncFunction
        end local 5 // boolean isGeneratorFunction
        end local 4 // boolean isArrowFunction
        end local 3 // boolean isStrict
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   23     0                   this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   23     1           functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0   23     2           functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0   23     3               isStrict  Z
            0   23     4        isArrowFunction  Z
            0   23     5    isGeneratorFunction  Z
            0   23     6        isAsyncFunction  Z
            0   23     7   isDerivedConstructor  Z
            0   23     8               isGlobal  Z
            0   23     9         needsNewTarget  Z
            0   23    10       needsParentFrame  Z
            0   23    11           functionName  Ljava/lang/String;
            0   23    12  hasSyntheticArguments  Z
            2   19    15            functionEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            3   17    16        currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
           14   17    17                   body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
           2    15      17  any
           1    16      20  any
          17    20      20  any
    MethodParameters:
                       Name  Flags
      functionNode           
      functionData           
      isStrict               
      isArrowFunction        
      isGeneratorFunction    
      isAsyncFunction        
      isDerivedConstructor   
      isGlobal               
      needsNewTarget         
      needsParentFrame       
      functionName           
      hasSyntheticArguments  

  private com.oracle.truffle.js.nodes.function.FunctionRootNode createFunctionRoot(com.oracle.js.parser.ir.FunctionNode, com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.parser.env.FunctionEnvironment, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        start local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 493
            aload 0 /* this */
            aload 1 /* functionNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createSourceSection:(Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/api/source/SourceSection;
            astore 5 /* functionSourceSection */
        start local 5 // com.oracle.truffle.api.source.SourceSection functionSourceSection
         1: .line 494
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 4 /* body */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/FunctionBodyNode;
            astore 6 /* functionBody */
        start local 6 // com.oracle.truffle.js.nodes.function.FunctionBodyNode functionBody
         2: .line 495
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 6 /* functionBody */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 2 /* functionData */
            aload 5 /* functionSourceSection */
         3: .line 496
            aload 3 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getInternalFunctionName:()Ljava/lang/String;
         4: .line 495
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionRootNode:(Lcom/oracle/truffle/js/nodes/function/AbstractBodyNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            astore 7 /* functionRoot */
        start local 7 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
         5: .line 501
            aload 7 /* functionRoot */
            areturn
        end local 7 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
        end local 6 // com.oracle.truffle.js.nodes.function.FunctionBodyNode functionBody
        end local 5 // com.oracle.truffle.api.source.SourceSection functionSourceSection
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    6     1           functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0    6     2           functionData  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            0    6     3        currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            0    6     4                   body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    6     5  functionSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            2    6     6           functionBody  Lcom/oracle/truffle/js/nodes/function/FunctionBodyNode;
            5    6     7           functionRoot  Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
    MethodParameters:
                 Name  Flags
      functionNode     
      functionData     
      currentFunction  
      body             

  private static void printAST(com.oracle.truffle.js.nodes.function.FunctionRootNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
         0: .line 505
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 0 /* functionRoot */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
         1: .line 506
            return
        end local 0 // com.oracle.truffle.js.nodes.function.FunctionRootNode functionRoot
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0  functionRoot  Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
    MethodParameters:
              Name  Flags
      functionRoot  

  private static void printParse(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 509
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new com.oracle.truffle.js.parser.internal.ir.debug.PrintVisitor
            dup
            aload 0 /* functionNode */
            invokespecial com.oracle.truffle.js.parser.internal.ir.debug.PrintVisitor.<init>:(Lcom/oracle/js/parser/ir/Node;)V
            invokevirtual com.oracle.truffle.js.parser.internal.ir.debug.PrintVisitor.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         1: .line 510
            return
        end local 0 // com.oracle.js.parser.ir.FunctionNode functionNode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0  functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
    MethodParameters:
              Name  Flags
      functionNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode handleAsyncFunctionBody(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 518
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncFunction:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findAsyncContextVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* asyncContextVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef asyncContextVar
         3: .line 520
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findAsyncResultVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* asyncResultVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef asyncResultVar
         4: .line 521
            aload 3 /* asyncResultVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 4 /* writeResultNode */
        start local 4 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeResultNode
         5: .line 522
            aload 2 /* asyncContextVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 5 /* writeContextNode */
        start local 5 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeContextNode
         6: .line 523
            aload 2 /* asyncContextVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 6 /* readContextNode */
        start local 6 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readContextNode
         7: .line 524
            aload 0 /* this */
            aload 1 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.instrumentSuspendNodes:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* instrumentedBody */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode instrumentedBody
         8: .line 525
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 7 /* instrumentedBody */
            aload 5 /* writeContextNode */
            aload 6 /* readContextNode */
            aload 4 /* writeResultNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAsyncFunctionBody:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode instrumentedBody
        end local 6 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readContextNode
        end local 5 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeContextNode
        end local 4 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeResultNode
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef asyncResultVar
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef asyncContextVar
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    9     1              body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    9     2   asyncContextVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            4    9     3    asyncResultVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            5    9     4   writeResultNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            6    9     5  writeContextNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            7    9     6   readContextNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
            8    9     7  instrumentedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.js.nodes.JavaScriptNode finishGeneratorBody(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode bodyBlock
         0: .line 534
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            aload 1 /* bodyBlock */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.handleFunctionReturn:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* body */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
         1: .line 536
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncGeneratorFunction:()Z
            ifeq 3
         2: .line 537
            aload 0 /* this */
            aload 2 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.handleAsyncGeneratorBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 539
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.handleGeneratorBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode bodyBlock
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  bodyBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    4     2       body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      bodyBlock  

  private com.oracle.truffle.js.nodes.JavaScriptNode handleGeneratorBody(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 544
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncGeneratorFunction:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.instrumentSuspendNodes:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* instrumentedBody */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode instrumentedBody
         3: .line 546
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isModule:()Z
            ifeq 5
         4: .line 547
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* instrumentedBody */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createModuleBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         5: .line 549
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findYieldValueVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* yieldVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef yieldVar
         6: .line 550
            aload 3 /* yieldVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 4 /* writeYieldValueNode */
        start local 4 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeYieldValueNode
         7: .line 551
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getYieldResultSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 5 /* readYieldResultNode */
        start local 5 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readYieldResultNode
         8: .line 552
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* instrumentedBody */
            aload 4 /* writeYieldValueNode */
            aload 5 /* readYieldResultNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGeneratorBody:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 5 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readYieldResultNode
        end local 4 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeYieldValueNode
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef yieldVar
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode instrumentedBody
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    9     1                 body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    9     2     instrumentedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    9     3             yieldVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            7    9     4  writeYieldValueNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            8    9     5  readYieldResultNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.js.nodes.JavaScriptNode handleAsyncGeneratorBody(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 556
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncGeneratorFunction:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findAsyncContextVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* asyncContextVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef asyncContextVar
         2: .line 558
            aload 0 /* this */
            aload 1 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.instrumentSuspendNodes:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* instrumentedBody */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode instrumentedBody
         3: .line 559
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findAsyncResultVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 4 /* yieldVar */
        start local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef yieldVar
         4: .line 560
            aload 2 /* asyncContextVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 5 /* writeAsyncContextNode */
        start local 5 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeAsyncContextNode
         5: .line 561
            aload 2 /* asyncContextVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 6 /* readAsyncContextNode */
        start local 6 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readAsyncContextNode
         6: .line 562
            aload 4 /* yieldVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 7 /* writeYieldValueNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeYieldValueNode
         7: .line 563
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isModule:()Z
            ifeq 9
         8: .line 564
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* instrumentedBody */
            aload 7 /* writeYieldValueNode */
            aload 5 /* writeAsyncContextNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTopLevelAsyncModuleBody:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         9: .line 566
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getYieldResultSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 8 /* readYieldResultNode */
        start local 8 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readYieldResultNode
        10: .line 567
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* instrumentedBody */
            aload 7 /* writeYieldValueNode */
            aload 8 /* readYieldResultNode */
            aload 5 /* writeAsyncContextNode */
            aload 6 /* readAsyncContextNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAsyncGeneratorBody:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 8 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readYieldResultNode
        end local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeYieldValueNode
        end local 6 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readAsyncContextNode
        end local 5 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeAsyncContextNode
        end local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef yieldVar
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode instrumentedBody
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef asyncContextVar
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0                   this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   11     1                   body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   11     2        asyncContextVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3   11     3       instrumentedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   11     4               yieldVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            5   11     5  writeAsyncContextNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            6   11     6   readAsyncContextNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
            7   11     7    writeYieldValueNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
           10   11     8    readYieldResultNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.js.nodes.JavaScriptNode instrumentSuspendNodes(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 574
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasYield:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasAwait:()Z
            ifne 2
         1: .line 575
            aload 1 /* body */
            areturn
         2: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* body */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.instrumentSuspendHelper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            astore 2 /* newBody */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode newBody
         3: .line 578
            aload 2 /* newBody */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 579
            aload 2 /* newBody */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode newBody
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1     body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    5     2  newBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.api.nodes.Node instrumentSuspendHelper(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.api.nodes.Node parent
        start local 2 // com.oracle.truffle.api.nodes.Node grandparent
         0: .line 583
            iconst_0
            istore 3 /* hasSuspendChild */
        start local 3 // boolean hasSuspendChild
         1: .line 584
            aconst_null
            astore 4 /* suspendableIndices */
        start local 4 // java.util.BitSet suspendableIndices
         2: .line 585
            aload 1 /* parent */
            instanceof com.oracle.truffle.js.nodes.control.AbstractBlockNode
            ifeq 16
         3: .line 586
            aload 1 /* parent */
            checkcast com.oracle.truffle.js.nodes.control.AbstractBlockNode
            invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.getStatements:()[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* statements */
        start local 5 // com.oracle.truffle.api.nodes.Node[] statements
         4: .line 587
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 14
         6: .line 588
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int java.util.BitSet com.oracle.truffle.api.nodes.Node[] int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* statements */
            iload 6 /* i */
            aaload
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.instrumentSuspendHelper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            astore 7 /* newChild */
        start local 7 // com.oracle.truffle.api.nodes.Node newChild
         7: .line 589
            aload 7 /* newChild */
            ifnull 13
         8: .line 590
            iconst_1
            istore 3 /* hasSuspendChild */
         9: .line 591
            aload 5 /* statements */
            iload 6 /* i */
            aload 7 /* newChild */
            aastore
        10: .line 592
            aload 4 /* suspendableIndices */
            ifnonnull 12
        11: .line 593
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 4 /* suspendableIndices */
        12: .line 595
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 4 /* suspendableIndices */
            iload 6 /* i */
            invokevirtual java.util.BitSet.set:(I)V
        end local 7 // com.oracle.truffle.api.nodes.Node newChild
        13: .line 587
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            aload 5 /* statements */
            arraylength
            if_icmplt 6
        end local 6 // int i
        end local 5 // com.oracle.truffle.api.nodes.Node[] statements
        15: .line 598
            goto 24
        16: .line 599
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.getChildrenInExecutionOrder:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 23
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int java.util.BitSet top java.util.Iterator
      StackMap stack:
        17: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 5 /* child */
        start local 5 // com.oracle.truffle.api.nodes.Node child
        18: .line 600
            aload 0 /* this */
            aload 5 /* child */
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.instrumentSuspendHelper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            astore 7 /* newChild */
        start local 7 // com.oracle.truffle.api.nodes.Node newChild
        19: .line 601
            aload 7 /* newChild */
            ifnull 23
        20: .line 602
            iconst_1
            istore 3 /* hasSuspendChild */
        21: .line 603
            aload 1 /* parent */
            aload 5 /* child */
            aload 7 /* newChild */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.replaceChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
            pop
        22: .line 604
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 23
            aload 5 /* child */
            instanceof com.oracle.truffle.js.nodes.control.ResumableNode
            ifeq 23
            aload 7 /* newChild */
            instanceof com.oracle.truffle.js.nodes.control.GeneratorWrapperNode
            ifne 23
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "resumable node not wrapped: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* child */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // com.oracle.truffle.api.nodes.Node newChild
        end local 5 // com.oracle.truffle.api.nodes.Node child
        23: .line 599
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        24: .line 608
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int java.util.BitSet
      StackMap stack:
            aload 1 /* parent */
            instanceof com.oracle.truffle.js.nodes.control.SuspendNode
            ifeq 26
        25: .line 609
            aload 0 /* this */
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapResumableNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        26: .line 610
      StackMap locals:
      StackMap stack:
            iload 3 /* hasSuspendChild */
            ifne 28
        27: .line 611
            aconst_null
            areturn
        28: .line 614
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            instanceof com.oracle.truffle.js.nodes.control.AbstractBlockNode
            ifeq 32
        29: .line 615
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 31
            aload 4 /* suspendableIndices */
            ifnull 30
            aload 4 /* suspendableIndices */
            invokevirtual java.util.BitSet.isEmpty:()Z
            ifeq 31
      StackMap locals:
      StackMap stack:
        30: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        31: .line 616
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parent */
            checkcast com.oracle.truffle.js.nodes.control.AbstractBlockNode
            aload 4 /* suspendableIndices */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.toGeneratorBlockNode:(Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;Ljava/util/BitSet;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        32: .line 617
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            instanceof com.oracle.truffle.js.nodes.control.ResumableNode
            ifeq 34
        33: .line 618
            aload 0 /* this */
            aload 1 /* parent */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapResumableNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        34: .line 619
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            instanceof com.oracle.truffle.js.nodes.control.ReturnNode
            ifne 35
            aload 1 /* parent */
            instanceof com.oracle.truffle.js.nodes.control.ReturnTargetNode
            ifne 35
            aload 1 /* parent */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isSideEffectFreeUnaryOpNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 36
        35: .line 621
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            areturn
        36: .line 622
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isSupportedDispersibleExpression:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 46
        37: .line 625
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* extracted */
        start local 5 // java.util.List extracted
        38: .line 627
            aload 2 /* grandparent */
            ifnull 39
            aload 2 /* grandparent */
            aload 1 /* parent */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.ANY_JAVA_SCRIPT_NODE:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.isReplacementSafe:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 40
        39: .line 629
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parent */
            aload 5 /* extracted */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.extractChildrenTo:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
        40: .line 633
      StackMap locals:
      StackMap stack:
            aload 5 /* extracted */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 45
        41: .line 634
            aload 5 /* extracted */
            aload 1 /* parent */
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 636
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* extracted */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapResumableNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* exprBlock */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode exprBlock
        43: .line 637
            aload 6 /* exprBlock */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        44: .line 638
            aload 6 /* exprBlock */
            areturn
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode exprBlock
        45: .line 641
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            areturn
        end local 5 // java.util.List extracted
        46: .line 648
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            areturn
        end local 4 // java.util.BitSet suspendableIndices
        end local 3 // boolean hasSuspendChild
        end local 2 // com.oracle.truffle.api.nodes.Node grandparent
        end local 1 // com.oracle.truffle.api.nodes.Node parent
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   47     0                this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   47     1              parent  Lcom/oracle/truffle/api/nodes/Node;
            0   47     2         grandparent  Lcom/oracle/truffle/api/nodes/Node;
            1   47     3     hasSuspendChild  Z
            2   47     4  suspendableIndices  Ljava/util/BitSet;
            4   15     5          statements  [Lcom/oracle/truffle/api/nodes/Node;
            5   15     6                   i  I
            7   13     7            newChild  Lcom/oracle/truffle/api/nodes/Node;
           18   23     5               child  Lcom/oracle/truffle/api/nodes/Node;
           19   23     7            newChild  Lcom/oracle/truffle/api/nodes/Node;
           38   46     5           extracted  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
           43   45     6           exprBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
             Name  Flags
      parent       
      grandparent  

  private com.oracle.truffle.js.nodes.JavaScriptNode wrapResumableNode(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.api.nodes.Node resumableNode
         0: .line 653
            aload 1 /* resumableNode */
            instanceof com.oracle.truffle.js.nodes.control.AbstractBlockNode
            ifeq 4
         1: .line 654
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 2 /* all */
        start local 2 // java.util.BitSet all
         2: .line 655
            aload 2 /* all */
            iconst_0
            aload 1 /* resumableNode */
            checkcast com.oracle.truffle.js.nodes.control.AbstractBlockNode
            invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.getStatements:()[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            arraylength
            invokevirtual java.util.BitSet.set:(II)V
         3: .line 656
            aload 0 /* this */
            aload 1 /* resumableNode */
            checkcast com.oracle.truffle.js.nodes.control.AbstractBlockNode
            aload 2 /* all */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.toGeneratorBlockNode:(Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;Ljava/util/BitSet;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // java.util.BitSet all
         4: .line 658
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc ":generatorstate:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSize:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* identifier */
        start local 2 // java.lang.String identifier
         5: .line 659
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 2 /* identifier */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
         6: .line 660
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* identifier */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLazyReadFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/LazyReadFrameSlotNode;
            astore 3 /* readState */
        start local 3 // com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode readState
         7: .line 661
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* identifier */
            aconst_null
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLazyWriteFrameSlot:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/LazyWriteFrameSlotNode;
            astore 4 /* writeState */
        start local 4 // com.oracle.truffle.js.nodes.access.WriteNode writeState
         8: .line 662
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* resumableNode */
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            aload 3 /* readState */
            aload 4 /* writeState */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGeneratorWrapper:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.access.WriteNode writeState
        end local 3 // com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode readState
        end local 2 // java.lang.String identifier
        end local 1 // com.oracle.truffle.api.nodes.Node resumableNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    9     1  resumableNode  Lcom/oracle/truffle/api/nodes/Node;
            2    4     2            all  Ljava/util/BitSet;
            5    9     2     identifier  Ljava/lang/String;
            7    9     3      readState  Lcom/oracle/truffle/js/nodes/access/LazyReadFrameSlotNode;
            8    9     4     writeState  Lcom/oracle/truffle/js/nodes/access/WriteNode;
    MethodParameters:
               Name  Flags
      resumableNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode toGeneratorBlockNode(com.oracle.truffle.js.nodes.control.AbstractBlockNode, java.util.BitSet);
    descriptor: (Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;Ljava/util/BitSet;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.control.AbstractBlockNode blockNode
        start local 2 // java.util.BitSet suspendableIndices
         0: .line 666
            new java.lang.StringBuilder
            dup
            ldc ":generatorstate:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSize:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* identifier */
        start local 3 // java.lang.String identifier
         1: .line 667
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 3 /* identifier */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
         2: .line 668
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* identifier */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLazyReadFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/LazyReadFrameSlotNode;
            astore 4 /* readState */
        start local 4 // com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode readState
         3: .line 669
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* identifier */
            aconst_null
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLazyWriteFrameSlot:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/LazyWriteFrameSlotNode;
            astore 5 /* writeState */
        start local 5 // com.oracle.truffle.js.nodes.access.WriteNode writeState
         4: .line 671
            aload 1 /* blockNode */
            invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.getStatements:()[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* statements */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
         5: .line 672
            aload 1 /* blockNode */
            ldc Lcom/oracle/truffle/js/runtime/objects/Undefined;
            invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.isResultAlwaysOfType:(Ljava/lang/Class;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[]
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* returnsResult */
        start local 7 // boolean returnsResult
         8: .line 675
            aload 2 /* suspendableIndices */
            invokevirtual java.util.BitSet.cardinality:()I
            aload 2 /* suspendableIndices */
            iconst_0
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int
      StackMap stack: int
         9: iconst_1
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int
      StackMap stack: int int
        10: iadd
            istore 9 /* resumePoints */
        start local 9 // int resumePoints
        11: .line 676
            iload 9 /* resumePoints */
            aload 6 /* statements */
            arraylength
            if_icmpne 16
        12: .line 678
            iload 7 /* returnsResult */
            ifeq 13
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 6 /* statements */
            aload 4 /* readState */
            aload 5 /* writeState */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGeneratorExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 14
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int
      StackMap stack:
        13: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 6 /* statements */
            aload 4 /* readState */
            aload 5 /* writeState */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGeneratorVoidBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        14: astore 8 /* genBlock */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode genBlock
        15: .line 679
            goto 41
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode genBlock
        16: .line 681
      StackMap locals:
      StackMap stack:
            iload 9 /* resumePoints */
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            astore 10 /* chunks */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode[] chunks
        17: .line 682
            iconst_0
            istore 11 /* fromIndex */
        start local 11 // int fromIndex
        18: .line 684
            iconst_0
            istore 13 /* chunkI */
        start local 13 // int chunkI
        19: goto 37
        20: .line 685
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int com.oracle.truffle.js.nodes.JavaScriptNode[] int top int
      StackMap stack:
            aload 2 /* suspendableIndices */
            iload 11 /* fromIndex */
            iconst_1
            iadd
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            istore 12 /* toIndex */
        start local 12 // int toIndex
        21: .line 686
            iload 12 /* toIndex */
            ifge 24
        22: .line 687
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 23
            iload 13 /* chunkI */
            iload 9 /* resumePoints */
            iconst_1
            isub
            if_icmpeq 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 688
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int com.oracle.truffle.js.nodes.JavaScriptNode[] int int int
      StackMap stack:
            aload 6 /* statements */
            arraylength
            istore 12 /* toIndex */
        24: .line 690
      StackMap locals:
      StackMap stack:
            iload 13 /* chunkI */
            iload 9 /* resumePoints */
            iconst_1
            isub
            if_icmpne 25
            aload 1 /* blockNode */
            ldc Lcom/oracle/truffle/js/runtime/objects/Undefined;
            invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.isResultAlwaysOfType:(Ljava/lang/Class;)Z
            ifne 25
            iconst_1
            goto 26
      StackMap locals:
      StackMap stack:
        25: iconst_0
      StackMap locals:
      StackMap stack: int
        26: istore 7 /* returnsResult */
        27: .line 692
            iload 11 /* fromIndex */
            iconst_1
            iadd
            iload 12 /* toIndex */
            if_icmpne 30
        28: .line 693
            aload 6 /* statements */
            iload 11 /* fromIndex */
            aaload
            astore 14 /* chunk */
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode chunk
        29: .line 694
            goto 34
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode chunk
        30: .line 695
      StackMap locals:
      StackMap stack:
            aload 6 /* statements */
            iload 11 /* fromIndex */
            iload 12 /* toIndex */
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            astore 15 /* chunkStatements */
        start local 15 // com.oracle.truffle.js.nodes.JavaScriptNode[] chunkStatements
        31: .line 696
            iload 7 /* returnsResult */
            ifeq 32
            iload 13 /* chunkI */
            iload 9 /* resumePoints */
            iconst_1
            isub
            if_icmpne 32
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 15 /* chunkStatements */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 33
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int com.oracle.truffle.js.nodes.JavaScriptNode[] int int int top com.oracle.truffle.js.nodes.JavaScriptNode[]
      StackMap stack:
        32: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 15 /* chunkStatements */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createVoidBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        33: astore 14 /* chunk */
        end local 15 // com.oracle.truffle.js.nodes.JavaScriptNode[] chunkStatements
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode chunk
        34: .line 698
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int com.oracle.truffle.js.nodes.JavaScriptNode[] int int int com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 10 /* chunks */
            iload 13 /* chunkI */
            aload 14 /* chunk */
            aastore
        35: .line 699
            iload 12 /* toIndex */
            istore 11 /* fromIndex */
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode chunk
        36: .line 684
            iinc 13 /* chunkI */ 1
        end local 12 // int toIndex
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int com.oracle.truffle.js.nodes.JavaScriptNode[] int top int
      StackMap stack:
        37: iload 13 /* chunkI */
            iload 9 /* resumePoints */
            if_icmplt 20
        end local 13 // int chunkI
        38: .line 701
            iload 7 /* returnsResult */
            ifeq 39
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 10 /* chunks */
            aload 4 /* readState */
            aload 5 /* writeState */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGeneratorExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 40
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int top int com.oracle.truffle.js.nodes.JavaScriptNode[] int
      StackMap stack:
        39: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 10 /* chunks */
            aload 4 /* readState */
            aload 5 /* writeState */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGeneratorVoidBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        40: astore 8 /* genBlock */
        end local 11 // int fromIndex
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode[] chunks
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode genBlock
        41: .line 703
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.control.AbstractBlockNode java.util.BitSet java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode com.oracle.truffle.js.nodes.access.WriteNode com.oracle.truffle.js.nodes.JavaScriptNode[] int com.oracle.truffle.js.nodes.JavaScriptNode int
      StackMap stack:
            aload 1 /* blockNode */
            aload 8 /* genBlock */
            invokestatic com.oracle.truffle.js.nodes.JavaScriptNode.transferSourceSectionAndTags:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
        42: .line 704
            aload 8 /* genBlock */
            areturn
        end local 9 // int resumePoints
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode genBlock
        end local 7 // boolean returnsResult
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
        end local 5 // com.oracle.truffle.js.nodes.access.WriteNode writeState
        end local 4 // com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode readState
        end local 3 // java.lang.String identifier
        end local 2 // java.util.BitSet suspendableIndices
        end local 1 // com.oracle.truffle.js.nodes.control.AbstractBlockNode blockNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   43     0                this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   43     1           blockNode  Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;
            0   43     2  suspendableIndices  Ljava/util/BitSet;
            1   43     3          identifier  Ljava/lang/String;
            3   43     4           readState  Lcom/oracle/truffle/js/nodes/access/LazyReadFrameSlotNode;
            4   43     5          writeState  Lcom/oracle/truffle/js/nodes/access/WriteNode;
            5   43     6          statements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8   43     7       returnsResult  Z
           15   16     8            genBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           41   43     8            genBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   43     9        resumePoints  I
           17   41    10              chunks  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           18   41    11           fromIndex  I
           21   37    12             toIndex  I
           19   38    13              chunkI  I
           29   30    14               chunk  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           34   36    14               chunk  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           31   34    15     chunkStatements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                    Name  Flags
      blockNode           
      suspendableIndices  

  private static boolean isSideEffectFreeUnaryOpNode(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 709
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.control.DiscardResultNode
            ifne 1
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.unary.VoidNode
            ifne 1
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.unary.TypeOfNode
            ifne 1
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.binary.JSTypeofIdenticalNode
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  private static boolean isSupportedDispersibleExpression(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 713
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.binary.JSBinaryNode
            ifne 6
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.unary.JSUnaryNode
            ifne 6
         1: .line 714
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.ArrayLiteralNode
            ifne 6
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.ObjectLiteralNode
            ifne 6
         2: .line 715
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.PropertyNode
            ifne 6
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.GlobalPropertyNode
            ifne 6
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.ReadElementNode
            ifne 6
         3: .line 716
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.WritePropertyNode
            ifne 6
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.WriteElementNode
            ifne 6
         4: .line 717
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.function.JSFunctionCallNode
            ifne 6
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.function.JSNewNode
            ifne 6
         5: .line 713
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  private static boolean isStatelessExpression(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node child
         0: .line 721
            aload 0 /* child */
            instanceof com.oracle.truffle.js.nodes.access.JSConstantNode
            ifne 2
            aload 0 /* child */
            instanceof com.oracle.truffle.js.nodes.access.CreateObjectNode
            ifne 2
            aload 0 /* child */
            instanceof com.oracle.truffle.js.nodes.RepeatableNode
            ifeq 1
            aload 0 /* child */
            instanceof com.oracle.truffle.js.nodes.ReadNode
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node child
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  child  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
       Name  Flags
      child  

  private static boolean skipOverToChildren(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 725
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode
            ifne 1
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode
            ifne 1
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.ArrayLiteralNode$SpreadArrayNode
            ifne 1
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.function.SpreadArgumentNode
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  private void extractChildTo(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.api.nodes.Node child
        start local 2 // com.oracle.truffle.api.nodes.Node parent
        start local 3 // java.util.List extracted
         0: .line 729
            aload 1 /* child */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isStatelessExpression:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 2
         1: .line 730
            return
         2: .line 732
      StackMap locals:
      StackMap stack:
            aload 1 /* child */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.skipOverToChildren:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 5
         3: .line 733
            aload 0 /* this */
            aload 1 /* child */
            aload 3 /* extracted */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.extractChildrenTo:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
         4: .line 734
            goto 19
      StackMap locals:
      StackMap stack:
         5: aload 1 /* child */
            instanceof com.oracle.truffle.js.nodes.JavaScriptNode
            ifeq 19
         6: .line 735
            aload 1 /* child */
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            astore 4 /* jschild */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode jschild
         7: .line 736
            new java.lang.StringBuilder
            dup
            ldc ":generatorexpr:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSize:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* identifier */
        start local 5 // java.lang.String identifier
         8: .line 737
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* identifier */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLazyReadFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/LazyReadFrameSlotNode;
            astore 6 /* readState */
        start local 6 // com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode readState
         9: .line 738
            aload 4 /* jschild */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifne 11
        10: .line 739
            aload 4 /* jschild */
            instanceof com.oracle.truffle.js.nodes.control.GeneratorWrapperNode
            ifeq 12
            aload 4 /* jschild */
            checkcast com.oracle.truffle.js.nodes.control.GeneratorWrapperNode
            invokevirtual com.oracle.truffle.js.nodes.control.GeneratorWrapperNode.getResumableNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 12
        11: .line 740
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode java.lang.String com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode
      StackMap stack:
            aload 6 /* readState */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        12: .line 742
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* identifier */
            aload 4 /* jschild */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLazyWriteFrameSlot:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/LazyWriteFrameSlotNode;
            astore 7 /* writeState */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode writeState
        13: .line 743
            aload 2 /* parent */
            aload 1 /* child */
            aload 6 /* readState */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.isReplacementSafe:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 18
        14: .line 744
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 5 /* identifier */
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
        15: .line 745
            aload 3 /* extracted */
            aload 7 /* writeState */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 747
            aload 2 /* parent */
            aload 1 /* child */
            aload 6 /* readState */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.replaceChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
            istore 8 /* ok */
        start local 8 // boolean ok
        17: .line 748
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 19
            iload 8 /* ok */
            ifne 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 8 // boolean ok
        18: .line 753
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 1 /* child */
            aload 3 /* extracted */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.extractChildrenTo:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode writeState
        end local 6 // com.oracle.truffle.js.nodes.access.LazyReadFrameSlotNode readState
        end local 5 // java.lang.String identifier
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode jschild
        19: .line 756
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.util.List
      StackMap stack:
            return
        end local 3 // java.util.List extracted
        end local 2 // com.oracle.truffle.api.nodes.Node parent
        end local 1 // com.oracle.truffle.api.nodes.Node child
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   20     1       child  Lcom/oracle/truffle/api/nodes/Node;
            0   20     2      parent  Lcom/oracle/truffle/api/nodes/Node;
            0   20     3   extracted  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            7   19     4     jschild  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8   19     5  identifier  Ljava/lang/String;
            9   19     6   readState  Lcom/oracle/truffle/js/nodes/access/LazyReadFrameSlotNode;
           13   19     7  writeState  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           17   18     8          ok  Z
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;)V
    MethodParameters:
           Name  Flags
      child      
      parent     
      extracted  

  private static java.lang.Iterable<com.oracle.truffle.api.nodes.Node> getChildrenInExecutionOrder(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Iterable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node parent
         0: .line 760
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  parent  Lcom/oracle/truffle/api/nodes/Node;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/Node;>;
    MethodParameters:
        Name  Flags
      parent  

  private void extractChildrenTo(com.oracle.truffle.api.nodes.Node, java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.api.nodes.Node parent
        start local 2 // java.util.List extracted
         0: .line 764
            aload 1 /* parent */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.getChildrenInExecutionOrder:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.nodes.Node java.util.List top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 3 /* child */
        start local 3 // com.oracle.truffle.api.nodes.Node child
         2: .line 765
            aload 0 /* this */
            aload 3 /* child */
            aload 1 /* parent */
            aload 2 /* extracted */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.extractChildTo:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List;)V
        end local 3 // com.oracle.truffle.api.nodes.Node child
         3: .line 764
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 767
            return
        end local 2 // java.util.List extracted
        end local 1 // com.oracle.truffle.api.nodes.Node parent
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1     parent  Lcom/oracle/truffle/api/nodes/Node;
            0    5     2  extracted  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            2    3     3      child  Lcom/oracle/truffle/api/nodes/Node;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;)V
    MethodParameters:
           Name  Flags
      parent     
      extracted  

  private com.oracle.truffle.js.nodes.JavaScriptNode handleFunctionReturn(com.oracle.js.parser.ir.FunctionNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 770
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isEval:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasSyntheticArguments:()Z
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isScript:()Z
            ifne 3
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isModule:()Z
            ifne 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack: int
         3: iconst_1
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: int int
         4: if_icmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 771
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 8
         6: .line 772
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 7
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasReturn:()Z
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapGetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         8: .line 775
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasReturn:()Z
            ifeq 10
         9: .line 777
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* body */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            iconst_0
            iconst_0
            getstatic com.oracle.truffle.js.nodes.access.ScopeFrameNode.EMPTY_FRAME_SLOT_ARRAY:[Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLocal:(Lcom/oracle/truffle/api/frame/FrameSlot;II[Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFrameReturnTarget:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ReturnTargetNode;
            areturn
        10: .line 782
      StackMap locals:
      StackMap stack:
            aload 2 /* body */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   11     1  functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0   11     2          body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
              Name  Flags
      functionNode  
      body          

  private com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable enterFunctionEnvironment(boolean, boolean, boolean, boolean, boolean, boolean, boolean);
    descriptor: (ZZZZZZZ)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=9, args_size=8
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // boolean isStrict
        start local 2 // boolean isArrowFunction
        start local 3 // boolean isGeneratorFunction
        start local 4 // boolean isDerivedConstructor
        start local 5 // boolean isAsyncFunction
        start local 6 // boolean isGlobal
        start local 7 // boolean hasSyntheticArguments
         0: .line 788
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            instanceof com.oracle.truffle.js.parser.env.EvalEnvironment
            ifeq 7
         1: .line 789
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 3
            iload 2 /* isArrowFunction */
            ifne 2
            iload 3 /* isGeneratorFunction */
            ifne 2
            iload 4 /* isDerivedConstructor */
            ifne 2
            iload 5 /* isAsyncFunction */
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 790
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.env.FunctionEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParent:()Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            iload 1 /* isStrict */
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            checkcast com.oracle.truffle.js.parser.env.EvalEnvironment
            invokevirtual com.oracle.truffle.js.parser.env.EvalEnvironment.isDirectEval:()Z
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iload 6 /* isGlobal */
         4: .line 791
            iload 7 /* hasSyntheticArguments */
         5: .line 790
            invokespecial com.oracle.truffle.js.parser.env.FunctionEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZZZZZ)V
            astore 8 /* functionEnv */
        start local 8 // com.oracle.truffle.js.parser.env.Environment functionEnv
         6: .line 792
            goto 15
        end local 8 // com.oracle.truffle.js.parser.env.Environment functionEnv
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            instanceof com.oracle.truffle.js.parser.env.DebugEnvironment
            ifeq 12
         8: .line 793
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 10
            iload 2 /* isArrowFunction */
            ifne 9
            iload 3 /* isGeneratorFunction */
            ifne 9
            iload 4 /* isDerivedConstructor */
            ifne 9
            iload 5 /* isAsyncFunction */
            ifeq 10
      StackMap locals:
      StackMap stack:
         9: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 794
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.env.FunctionEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            iload 1 /* isStrict */
            iconst_1
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iload 6 /* isGlobal */
            iload 7 /* hasSyntheticArguments */
            invokespecial com.oracle.truffle.js.parser.env.FunctionEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZZZZZ)V
            astore 8 /* functionEnv */
        start local 8 // com.oracle.truffle.js.parser.env.Environment functionEnv
        11: .line 795
            goto 15
        end local 8 // com.oracle.truffle.js.parser.env.Environment functionEnv
        12: .line 796
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.env.FunctionEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            iload 1 /* isStrict */
            iconst_0
            iconst_0
            iload 2 /* isArrowFunction */
            iload 3 /* isGeneratorFunction */
            iload 4 /* isDerivedConstructor */
            iload 5 /* isAsyncFunction */
            iload 6 /* isGlobal */
        13: .line 797
            iload 7 /* hasSyntheticArguments */
        14: .line 796
            invokespecial com.oracle.truffle.js.parser.env.FunctionEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;ZZZZZZZZZ)V
            astore 8 /* functionEnv */
        start local 8 // com.oracle.truffle.js.parser.env.Environment functionEnv
        15: .line 799
      StackMap locals: com.oracle.truffle.js.parser.env.Environment
      StackMap stack:
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 8 /* functionEnv */
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 8 // com.oracle.truffle.js.parser.env.Environment functionEnv
        end local 7 // boolean hasSyntheticArguments
        end local 6 // boolean isGlobal
        end local 5 // boolean isAsyncFunction
        end local 4 // boolean isDerivedConstructor
        end local 3 // boolean isGeneratorFunction
        end local 2 // boolean isArrowFunction
        end local 1 // boolean isStrict
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   16     0                   this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   16     1               isStrict  Z
            0   16     2        isArrowFunction  Z
            0   16     3    isGeneratorFunction  Z
            0   16     4   isDerivedConstructor  Z
            0   16     5        isAsyncFunction  Z
            0   16     6               isGlobal  Z
            0   16     7  hasSyntheticArguments  Z
            6    7     8            functionEnv  Lcom/oracle/truffle/js/parser/env/Environment;
           11   12     8            functionEnv  Lcom/oracle/truffle/js/parser/env/Environment;
           15   16     8            functionEnv  Lcom/oracle/truffle/js/parser/env/Environment;
    MethodParameters:
                       Name  Flags
      isStrict               
      isArrowFunction        
      isGeneratorFunction    
      isDerivedConstructor   
      isAsyncFunction        
      isGlobal               
      hasSyntheticArguments  

  private void declareParameters(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 803
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         1: .line 804
            aload 2 /* currentFunction */
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.hasSimpleParameterList:()Z
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setSimpleParameterList:(Z)V
         2: .line 805
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getParameters:()Ljava/util/List;
            astore 3 /* parameters */
        start local 3 // java.util.List parameters
         3: .line 806
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 11
         5: .line 807
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment java.util.List int
      StackMap stack:
            aload 3 /* parameters */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.IdentNode
            astore 5 /* parameter */
        start local 5 // com.oracle.js.parser.ir.IdentNode parameter
         6: .line 809
            aload 2 /* currentFunction */
            aload 5 /* parameter */
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareParameter:(Ljava/lang/String;)V
         7: .line 810
            aload 5 /* parameter */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isRestParameter:()Z
            ifeq 10
         8: .line 811
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 9
            iload 4 /* i */
            aload 3 /* parameters */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 812
      StackMap locals: com.oracle.js.parser.ir.IdentNode
      StackMap stack:
            aload 2 /* currentFunction */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setRestParameter:(Z)V
        end local 5 // com.oracle.js.parser.ir.IdentNode parameter
        10: .line 806
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 3 /* parameters */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 4 // int i
        12: .line 815
            return
        end local 3 // java.util.List parameters
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   13     1     functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            1   13     2  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            3   13     3       parameters  Ljava/util/List<Lcom/oracle/js/parser/ir/IdentNode;>;
            4   12     4                i  I
            6   10     5        parameter  Lcom/oracle/js/parser/ir/IdentNode;
    MethodParameters:
              Name  Flags
      functionNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode prepareDeclarations(java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode>, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.util.List declarations
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 818
            aload 1 /* declarations */
            aload 2 /* body */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 819
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* declarations */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 1 // java.util.List declarations
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1  declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            0    2     2          body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
              Name  Flags
      declarations  
      body          

  private static com.oracle.truffle.js.nodes.JavaScriptNode[] javaScriptNodeArray(int);
    descriptor: (I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int size
         0: .line 824
            iload 0 /* size */
            ifne 1
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 0 /* size */
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[]
         2: areturn
        end local 0 // int size
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  size  I
    MethodParameters:
      Name  Flags
      size  

  private java.lang.String getFunctionName(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 828
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            bipush 6
            if_icmpge 7
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isGetter:()Z
            ifne 1
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isSetter:()Z
            ifeq 7
         1: .line 830
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isAnonymous:()Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 831
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         3: .line 832
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isGetter:()Z
            ifeq 4
            aload 2 /* name */
            ldc "get "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 5
      StackMap locals: java.lang.String
      StackMap stack:
         4: aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isSetter:()Z
            ifeq 6
            aload 2 /* name */
            ldc "set "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 833
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            iconst_4
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* name */
         6: .line 835
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            areturn
        end local 2 // java.lang.String name
         7: .line 837
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getName:()Ljava/lang/String;
            areturn
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    8     1  functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            3    7     2          name  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      functionNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode prepareParameters(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 841
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParameters:()Ljava/util/List;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParameterCount:()I
            anewarray com.oracle.truffle.api.frame.FrameSlot
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot[]
            astore 2 /* frameSlots */
        start local 2 // com.oracle.truffle.api.frame.FrameSlot[] frameSlots
         1: .line 842
            aload 0 /* this */
            aload 2 /* frameSlots */
            aload 1 /* body */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createEnterFrameBlock:([Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.api.frame.FrameSlot[] frameSlots
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1        body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    2     2  frameSlots  [Lcom/oracle/truffle/api/frame/FrameSlot;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.js.nodes.JavaScriptNode createEnterFrameBlock(com.oracle.truffle.api.frame.FrameSlot[], com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: ([Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.api.frame.FrameSlot[] parameterSlots
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 846
            aload 1 /* parameterSlots */
            arraylength
            ifeq 16
         1: .line 847
            aload 1 /* parameterSlots */
            arraylength
            iconst_1
            iadd
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* parameterAssignment */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] parameterAssignment
         2: .line 848
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: .line 849
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 5 /* currentFunction */
        start local 5 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         4: .line 850
            aload 5 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasRestParameter:()Z
            istore 6 /* hasRestParameter */
        start local 6 // boolean hasRestParameter
         5: .line 851
            aload 5 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getLeadingArgumentCount:()I
            istore 7 /* argIndex */
        start local 7 // int argIndex
         6: goto 13
         7: .line 853
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.frame.FrameSlot[] com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode[] int com.oracle.truffle.js.parser.env.FunctionEnvironment int int
      StackMap stack:
            iload 6 /* hasRestParameter */
            ifeq 10
            iload 4 /* i */
            aload 1 /* parameterSlots */
            arraylength
            iconst_1
            isub
            if_icmpne 10
         8: .line 854
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            iload 7 /* argIndex */
            aload 5 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getTrailingArgumentCount:()I
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessRestArgument:(Lcom/oracle/truffle/js/runtime/JSContext;II)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* valueNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
         9: .line 855
            goto 11
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        10: .line 856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iload 7 /* argIndex */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessArgument:(I)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* valueNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        11: .line 858
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* parameterAssignment */
            iload 4 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* parameterSlots */
            iload 4 /* i */
            aaload
            aload 5 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getFunctionFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 8 /* valueNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWriteCurrentFrameSlot:(Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        12: .line 851
            iinc 4 /* i */ 1
            iinc 7 /* argIndex */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 1 /* parameterSlots */
            arraylength
            if_icmplt 7
        end local 7 // int argIndex
        14: .line 860
            aload 3 /* parameterAssignment */
            iload 4 /* i */
            aload 2 /* body */
            aastore
        15: .line 861
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* parameterAssignment */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 6 // boolean hasRestParameter
        end local 5 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 4 // int i
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] parameterAssignment
        16: .line 863
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.api.frame.FrameSlot[] com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 2 /* body */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 1 // com.oracle.truffle.api.frame.FrameSlot[] parameterSlots
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   17     0                 this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   17     1       parameterSlots  [Lcom/oracle/truffle/api/frame/FrameSlot;
            0   17     2                 body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   16     3  parameterAssignment  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3   16     4                    i  I
            4   16     5      currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            5   16     6     hasRestParameter  Z
            6   14     7             argIndex  I
            9   10     8            valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   12     8            valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                Name  Flags
      parameterSlots  
      body            

  private static com.oracle.truffle.js.nodes.JavaScriptNode tagHiddenExpression(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode node
         0: .line 868
            aload 0 /* node */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.unavailableInternalSection:Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.setSourceSection:(Lcom/oracle/truffle/api/source/SourceSection;)V
         1: .line 869
            aload 0 /* node */
            instanceof com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            ifeq 4
         2: .line 870
            aload 0 /* node */
            checkcast com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode.getDelegateNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         3: .line 871
            goto 5
         4: .line 872
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.addExpressionTag:()V
         5: .line 874
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            areturn
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  node  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      node  

  static int getBlockScopedSymbolFlags(com.oracle.js.parser.ir.VarNode);
    descriptor: (Lcom/oracle/js/parser/ir/VarNode;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.VarNode varNode
         0: .line 878
            aload 0 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isConst:()Z
            ifeq 2
         1: .line 879
            iconst_2
            ireturn
         2: .line 881
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 3
            aload 0 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isLet:()Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 882
      StackMap locals:
      StackMap stack:
            iconst_1
            aload 0 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.getName:()Lcom/oracle/js/parser/ir/IdentNode;
            invokevirtual com.oracle.js.parser.ir.IdentNode.isCatchParameter:()Z
            ifeq 4
            ldc 33792
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: com.oracle.js.parser.ir.VarNode
      StackMap stack: int int
         5: ior
            ireturn
        end local 0 // com.oracle.js.parser.ir.VarNode varNode
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  varNode  Lcom/oracle/js/parser/ir/VarNode;
    MethodParameters:
         Name  Flags
      varNode  

  private java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode> functionEnvInit(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 887
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         1: .line 888
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifeq 2
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isIndirectEval:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 891
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.markTerminalReturnNodes:(Lcom/oracle/js/parser/ir/Node;)V
         3: .line 894
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isArrow:()Z
            ifne 10
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsArguments:()Z
            ifeq 10
         4: .line 895
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveArgumentsSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
         5: .line 897
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getNumOfParams:()I
            ifne 9
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.hasEval:()Z
            ifne 9
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.hasApplyArgumentsCall:()Z
            ifeq 9
         6: .line 898
            aload 1 /* functionNode */
            aload 2 /* currentFunction */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.checkDirectArgumentsAccess:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;)Z
            ifeq 9
         7: .line 899
            aload 2 /* currentFunction */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setDirectArgumentsAccess:(Z)V
         8: .line 900
            goto 10
         9: .line 901
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFunction */
            ldc "arguments"
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.declareVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
        10: .line 907
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsThis:()Z
            ifeq 13
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isArrow:()Z
            ifne 11
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifeq 12
      StackMap locals:
      StackMap stack:
        11: aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getNonArrowParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDerivedConstructor:()Z
            ifne 13
        12: .line 908
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveThisSlot:()V
        13: .line 910
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsSuper:()Z
            ifeq 17
        14: .line 913
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 15
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isArrow:()Z
            ifeq 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 915
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveThisSlot:()V
        16: .line 916
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveSuperSlot:()V
        17: .line 918
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsNewTarget:()Z
            ifeq 19
        18: .line 919
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveNewTargetSlot:()V
        19: .line 922
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isClassConstructor:()Z
            ifeq 21
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentClass:()Lcom/oracle/js/parser/ir/ClassNode;
            invokevirtual com.oracle.js.parser.ir.ClassNode.hasInstanceFields:()Z
            ifne 20
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentClass:()Lcom/oracle/js/parser/ir/ClassNode;
            invokevirtual com.oracle.js.parser.ir.ClassNode.hasPrivateInstanceMethods:()Z
            ifeq 21
        20: .line 926
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveThisSlot:()V
        21: .line 929
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsDynamicScope:()Z
            ifeq 24
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 24
        22: .line 930
            aload 2 /* currentFunction */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setIsDynamicallyScoped:(Z)V
        23: .line 931
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.reserveDynamicScopeSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
        24: .line 934
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   25     1     functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            1   25     2  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    Signature: (Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
    MethodParameters:
              Name  Flags
      functionNode  

  private static void functionNeedsParentFramePass(com.oracle.js.parser.ir.FunctionNode, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/JSContext;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.js.parser.ir.FunctionNode rootFunctionNode
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 938
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isLazyTranslation:()Z
            ifne 2
         1: .line 939
            return
         2: .line 942
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.GraalJSTranslator$2
            dup
            new com.oracle.js.parser.ir.LexicalContext
            dup
            invokespecial com.oracle.js.parser.ir.LexicalContext.<init>:()V
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$2.<init>:(Lcom/oracle/js/parser/ir/LexicalContext;)V
            astore 2 /* visitor */
        start local 2 // com.oracle.js.parser.ir.visitor.NodeVisitor visitor
         3: .line 1059
            aload 0 /* rootFunctionNode */
            aload 2 /* visitor */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
            pop
         4: .line 1060
            return
        end local 2 // com.oracle.js.parser.ir.visitor.NodeVisitor visitor
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.js.parser.ir.FunctionNode rootFunctionNode
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0  rootFunctionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0    5     1           context  Lcom/oracle/truffle/js/runtime/JSContext;
            3    5     2           visitor  Lcom/oracle/js/parser/ir/visitor/NodeVisitor<Lcom/oracle/js/parser/ir/LexicalContext;>;
    MethodParameters:
                  Name  Flags
      rootFunctionNode  
      context           

  private static boolean checkDirectArgumentsAccess(com.oracle.js.parser.ir.FunctionNode, com.oracle.truffle.js.parser.env.FunctionEnvironment);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 1 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         0: .line 1105
            new com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor
            dup
            new com.oracle.js.parser.ir.LexicalContext
            dup
            invokespecial com.oracle.js.parser.ir.LexicalContext.<init>:()V
            aload 0 /* functionNode */
            aload 1 /* currentFunction */
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor.<init>:(Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;)V
            astore 2 /* visitor */
        start local 2 // com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor visitor
         1: .line 1106
            aload 0 /* functionNode */
            aload 2 /* visitor */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
            pop
         2: .line 1107
            aload 2 /* visitor */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor.directArgumentsAccess:Z
            ireturn
        end local 2 // com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor visitor
        end local 1 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 0 // com.oracle.js.parser.ir.FunctionNode functionNode
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0     functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0    3     1  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            1    3     2          visitor  Lcom/oracle/truffle/js/parser/GraalJSTranslator$1DirectArgumentsAccessVisitor;
    MethodParameters:
                 Name  Flags
      functionNode     
      currentFunction  

  private static void markTerminalReturnNodes(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node node
         0: .line 1111
            aload 0 /* node */
            instanceof com.oracle.js.parser.ir.Block
            ifeq 5
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.Block
            invokevirtual com.oracle.js.parser.ir.Block.isTerminal:()Z
            ifeq 5
         1: .line 1112
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.Block
            invokevirtual com.oracle.js.parser.ir.Block.getLastStatement:()Lcom/oracle/js/parser/ir/Statement;
            astore 1 /* lastStatement */
        start local 1 // com.oracle.js.parser.ir.Statement lastStatement
         2: .line 1113
            aload 1 /* lastStatement */
            ifnull 14
         3: .line 1114
            aload 1 /* lastStatement */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.markTerminalReturnNodes:(Lcom/oracle/js/parser/ir/Node;)V
        end local 1 // com.oracle.js.parser.ir.Statement lastStatement
         4: .line 1116
            goto 14
      StackMap locals:
      StackMap stack:
         5: aload 0 /* node */
            instanceof com.oracle.js.parser.ir.BlockStatement
            ifeq 8
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.BlockStatement
            invokevirtual com.oracle.js.parser.ir.BlockStatement.isTerminal:()Z
            ifeq 8
         6: .line 1117
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.BlockStatement
            invokevirtual com.oracle.js.parser.ir.BlockStatement.getBlock:()Lcom/oracle/js/parser/ir/Block;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.markTerminalReturnNodes:(Lcom/oracle/js/parser/ir/Node;)V
         7: .line 1118
            goto 14
      StackMap locals:
      StackMap stack:
         8: aload 0 /* node */
            instanceof com.oracle.js.parser.ir.IfNode
            ifeq 12
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.IfNode
            invokevirtual com.oracle.js.parser.ir.IfNode.isTerminal:()Z
            ifeq 12
         9: .line 1119
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.IfNode
            invokevirtual com.oracle.js.parser.ir.IfNode.getPass:()Lcom/oracle/js/parser/ir/Block;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.markTerminalReturnNodes:(Lcom/oracle/js/parser/ir/Node;)V
        10: .line 1120
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.IfNode
            invokevirtual com.oracle.js.parser.ir.IfNode.getFail:()Lcom/oracle/js/parser/ir/Block;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.markTerminalReturnNodes:(Lcom/oracle/js/parser/ir/Node;)V
        11: .line 1121
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 0 /* node */
            instanceof com.oracle.js.parser.ir.ReturnNode
            ifeq 14
        13: .line 1122
            aload 0 /* node */
            checkcast com.oracle.js.parser.ir.ReturnNode
            iconst_1
            invokevirtual com.oracle.js.parser.ir.ReturnNode.setInTerminalPosition:(Z)V
        14: .line 1124
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.js.parser.ir.Node node
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           node  Lcom/oracle/js/parser/ir/Node;
            2    4     1  lastStatement  Lcom/oracle/js/parser/ir/Statement;
    MethodParameters:
      Name  Flags
      node  

  private java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode> collectGlobalVars(com.oracle.js.parser.ir.FunctionNode, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Z)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 2 // boolean configurable
         0: .line 1127
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getSymbolCount:()I
            istore 3 /* symbolCount */
        start local 3 // int symbolCount
         1: .line 1128
            iload 3 /* symbolCount */
            ifne 3
         2: .line 1129
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 1131
      StackMap locals: int
      StackMap stack:
            new java.util.ArrayList
            dup
            iload 3 /* symbolCount */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* declarations */
        start local 4 // java.util.List declarations
         4: .line 1132
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getSymbols:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Symbol
            astore 5 /* symbol */
        start local 5 // com.oracle.js.parser.ir.Symbol symbol
         6: .line 1133
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isGlobal:()Z
            ifeq 12
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isVar:()Z
            ifeq 12
         7: .line 1134
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isHoistableDeclaration:()Z
            ifeq 10
         8: .line 1135
            aload 4 /* declarations */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            iload 2 /* configurable */
            aconst_null
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDeclareGlobalFunction:(Ljava/lang/String;ZLcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 1136
            goto 15
        10: .line 1137
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int java.util.List com.oracle.js.parser.ir.Symbol java.util.Iterator
      StackMap stack:
            aload 4 /* declarations */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            iload 2 /* configurable */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDeclareGlobalVariable:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1139
            goto 15
      StackMap locals:
      StackMap stack:
        12: iload 2 /* configurable */
            ifne 15
        13: .line 1140
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 14
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isBlockScoped:()Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1141
      StackMap locals:
      StackMap stack:
            aload 4 /* declarations */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            aload 5 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isConst:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDeclareGlobalLexicalVariable:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.oracle.js.parser.ir.Symbol symbol
        15: .line 1132
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode int int java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        16: .line 1144
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* nodes */
        start local 5 // java.util.List nodes
        17: .line 1145
            aload 5 /* nodes */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 4 /* declarations */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGlobalDeclarationInstantiation:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 1146
            aload 5 /* nodes */
            areturn
        end local 5 // java.util.List nodes
        end local 4 // java.util.List declarations
        end local 3 // int symbolCount
        end local 2 // boolean configurable
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   19     1  functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0   19     2  configurable  Z
            1   19     3   symbolCount  I
            4   19     4  declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;>;
            6   15     5        symbol  Lcom/oracle/js/parser/ir/Symbol;
           17   19     5         nodes  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
    Signature: (Lcom/oracle/js/parser/ir/FunctionNode;Z)Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
    MethodParameters:
              Name  Flags
      functionNode  
      configurable  

  private com.oracle.truffle.js.nodes.JavaScriptNode prepareArguments(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 1150
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            ldc "arguments"
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* argumentsVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef argumentsVar
         1: .line 1151
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isStrictMode:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.hasSimpleParameterList:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* unmappedArgumentsObject */
        start local 3 // boolean unmappedArgumentsObject
         4: .line 1152
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            iload 3 /* unmappedArgumentsObject */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getLeadingArgumentCount:()I
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getTrailingArgumentCount:()I
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createArgumentsObjectNode:(Lcom/oracle/truffle/js/runtime/JSContext;ZII)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* argumentsObject */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode argumentsObject
         5: .line 1153
            iload 3 /* unmappedArgumentsObject */
            ifne 7
         6: .line 1154
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findArgumentsVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 4 /* argumentsObject */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* argumentsObject */
         7: .line 1156
      StackMap locals: int com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 2 /* argumentsVar */
            aload 4 /* argumentsObject */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* setArgumentsNode */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode setArgumentsNode
         8: .line 1157
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 5 /* setArgumentsNode */
            aastore
            dup
            iconst_1
            aload 1 /* body */
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode setArgumentsNode
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode argumentsObject
        end local 3 // boolean unmappedArgumentsObject
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef argumentsVar
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    9     0                     this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    9     1                     body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    9     2             argumentsVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            4    9     3  unmappedArgumentsObject  Z
            5    9     4          argumentsObject  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8    9     5         setArgumentsNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.js.nodes.JavaScriptNode prepareThis(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        start local 2 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 1162
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getNonArrowParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDerivedConstructor:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* thisVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef thisVar
         2: .line 1164
            aload 2 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isArrow:()Z
            istore 4 /* isLexicalThis */
        start local 4 // boolean isLexicalThis
         3: .line 1165
            iload 4 /* isLexicalThis */
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessLexicalThis:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 5
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef int
      StackMap stack:
         4: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessThis:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         5: astore 5 /* getThisNode */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode getThisNode
         6: .line 1166
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            ifne 8
            iload 4 /* isLexicalThis */
            ifne 8
         7: .line 1167
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 5 /* getThisNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrepareThisBinding:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* getThisNode */
         8: .line 1169
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 2 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isClassConstructor:()Z
            ifeq 10
         9: .line 1170
            aload 0 /* this */
            aload 5 /* getThisNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.initializeInstanceElements:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* getThisNode */
        10: .line 1172
      StackMap locals:
      StackMap stack:
            aload 3 /* thisVar */
            aload 5 /* getThisNode */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* setThisNode */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode setThisNode
        11: .line 1173
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 6 /* setThisNode */
            aastore
            dup
            iconst_1
            aload 1 /* body */
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode setThisNode
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode getThisNode
        end local 4 // boolean isLexicalThis
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef thisVar
        end local 2 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   12     1           body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   12     2   functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            2   12     3        thisVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3   12     4  isLexicalThis  Z
            6   12     5    getThisNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   12     6    setThisNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
              Name  Flags
      body          
      functionNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode prepareSuper(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 1177
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessHomeObject:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* getHomeObject */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode getHomeObject
         1: .line 1178
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findSuperVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 2 /* getHomeObject */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* setSuperNode */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode setSuperNode
         2: .line 1179
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 3 /* setSuperNode */
            aastore
            dup
            iconst_1
            aload 1 /* body */
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode setSuperNode
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode getHomeObject
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1           body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    3     2  getHomeObject  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     3   setSuperNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      body  

  private com.oracle.truffle.js.nodes.JavaScriptNode prepareNewTarget(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 1183
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessNewTarget:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* getNewTarget */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode getNewTarget
         1: .line 1184
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findNewTargetVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 2 /* getNewTarget */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* setNewTarget */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode setNewTarget
         2: .line 1185
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 3 /* setNewTarget */
            aastore
            dup
            iconst_1
            aload 1 /* body */
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode setNewTarget
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode getNewTarget
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1          body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    3     2  getNewTarget  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     3  setNewTarget  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      body  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterReturnNode(com.oracle.js.parser.ir.ReturnNode);
    descriptor: (Lcom/oracle/js/parser/ir/ReturnNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ReturnNode returnNode
         0: .line 1191
            aload 1 /* returnNode */
            invokevirtual com.oracle.js.parser.ir.ReturnNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            ifnull 5
         1: .line 1192
            aload 0 /* this */
            aload 1 /* returnNode */
            invokevirtual com.oracle.js.parser.ir.ReturnNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* expression */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         2: .line 1193
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncGeneratorFunction:()Z
            ifeq 6
         3: .line 1194
            aload 0 /* this */
            aload 2 /* expression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createAwaitNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* expression */
         4: .line 1196
            goto 6
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         5: .line 1197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* expression */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         6: .line 1200
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 1 /* returnNode */
            invokevirtual com.oracle.js.parser.ir.ReturnNode.isInTerminalPosition:()Z
            ifeq 7
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* expression */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTerminalPositionReturn:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ReturnNode;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            aload 2 /* expression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createReturnNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ReturnNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.control.ReturnNode
         8: astore 3 /* returnStatement */
        start local 3 // com.oracle.truffle.js.nodes.control.ReturnNode returnStatement
         9: .line 1201
            aload 0 /* this */
            aload 3 /* returnStatement */
            aload 1 /* returnNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.control.ReturnNode returnStatement
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        end local 1 // com.oracle.js.parser.ir.ReturnNode returnNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   10     1       returnNode  Lcom/oracle/js/parser/ir/ReturnNode;
            2    5     2       expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6   10     2       expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   10     3  returnStatement  Lcom/oracle/truffle/js/nodes/control/ReturnNode;
    MethodParameters:
            Name  Flags
      returnNode  

  private com.oracle.truffle.js.nodes.control.ReturnNode createReturnNode(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ReturnNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         0: .line 1205
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         1: .line 1206
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addReturn:()V
         2: .line 1208
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 1 /* expression */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* writeReturnSlotNode */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode writeReturnSlotNode
         3: .line 1209
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* writeReturnSlotNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFrameReturn:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ReturnNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode writeReturnSlotNode
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1           expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    4     2      currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            3    4     3  writeReturnSlotNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      expression  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterBlock(com.oracle.js.parser.ir.Block);
    descriptor: (Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Block block
         0: .line 1218
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 0 /* this */
            aload 1 /* block */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockEnvironment:(Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            astore 5 /* blockEnv */
        start local 5 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
         2: .line 1219
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getStatements:()Ljava/util/List;
            astore 6 /* blockStatements */
        start local 6 // java.util.List blockStatements
         3: .line 1220
            aload 0 /* this */
            aload 1 /* block */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createTemporalDeadZoneInit:(Lcom/oracle/js/parser/ir/Block;)Ljava/util/List;
            astore 7 /* scopeInit */
        start local 7 // java.util.List scopeInit
         4: .line 1221
            aload 0 /* this */
            aload 6 /* blockStatements */
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isTerminal:()Z
            aload 7 /* scopeInit */
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isExpressionBlock:()Z
            ifne 5
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isParameterBlock:()Z
            ifne 5
            iconst_0
            goto 6
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable java.util.List java.util.List
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator java.util.List int java.util.List
         5: iconst_1
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable java.util.List java.util.List
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator java.util.List int java.util.List int
         6: invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformStatements:(Ljava/util/List;ZLjava/util/List;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* blockNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode blockNode
         7: .line 1222
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isFunctionBody:()Z
            ifeq 9
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            ifeq 9
         8: .line 1223
            aload 0 /* this */
            aload 1 /* block */
            aload 8 /* blockNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.prependDynamicScopeBindingInit:(Lcom/oracle/js/parser/ir/Block;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* blockNode */
         9: .line 1225
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 5 /* blockEnv */
            aload 8 /* blockNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.wrapBlockScope:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode blockNode
        end local 7 // java.util.List scopeInit
        end local 6 // java.util.List blockStatements
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        10: .line 1226
            aload 5 /* blockEnv */
            ifnull 16
            aload 5 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
            goto 16
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 5 /* blockEnv */
            ifnull 12
            aload 5 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 5 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 3
            ifnonnull 14
            aload 4
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3
            aload 4
            if_acmpeq 15
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        16: .line 1228
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isFunctionBody:()Z
            ifeq 20
        17: .line 1229
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:()Z
            ifeq 19
        18: .line 1230
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.finishGeneratorBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        19: .line 1232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            aload 1 /* block */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagBody:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        20: .line 1234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            aload 1 /* block */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        21: .line 1235
            aload 2 /* result */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        end local 1 // com.oracle.js.parser.ir.Block block
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   22     1            block  Lcom/oracle/js/parser/ir/Block;
           10   11     2           result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           16   22     2           result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   12     5         blockEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            3   10     6  blockStatements  Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;
            4   10     7        scopeInit  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            7   10     8        blockNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
           2    10      11  any
           1    13      13  any
    MethodParameters:
       Name  Flags
      block  

  private java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode> createTemporalDeadZoneInit(com.oracle.js.parser.ir.Block);
    descriptor: (Lcom/oracle/js/parser/ir/Block;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Block block
         0: .line 1242
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            invokevirtual com.oracle.js.parser.ir.Scope.hasBlockScopedOrRedeclaredSymbols:()Z
            ifne 1
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isModuleBody:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            instanceof com.oracle.truffle.js.parser.env.GlobalEnvironment
            ifeq 3
         2: .line 1243
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 1246
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getSymbolCount:()I
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* blockWithInit */
        start local 2 // java.util.ArrayList blockWithInit
         4: .line 1247
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getSymbols:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block java.util.ArrayList top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Symbol
            astore 3 /* symbol */
        start local 3 // com.oracle.js.parser.ir.Symbol symbol
         6: .line 1248
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isImportBinding:()Z
            ifeq 8
         7: .line 1249
            goto 16
         8: .line 1251
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block java.util.ArrayList com.oracle.js.parser.ir.Symbol java.util.Iterator
      StackMap stack:
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isBlockScoped:()Z
            ifeq 11
         9: .line 1252
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.hasBeenDeclared:()Z
            ifne 11
        10: .line 1253
            aload 2 /* blockWithInit */
            aload 0 /* this */
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokestatic com.oracle.truffle.js.runtime.objects.Dead.instance:()Lcom/oracle/truffle/js/runtime/objects/Dead;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstant:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1256
      StackMap locals:
      StackMap stack:
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isVarRedeclaredHere:()Z
            ifeq 16
        12: .line 1258
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 13
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isFunctionBody:()Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 1259
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 14
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getScopeLevel:()I
            iconst_1
            if_icmpeq 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParent:()Lcom/oracle/truffle/js/parser/env/Environment;
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            iconst_0
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParentSlots:()[Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLocal:(Lcom/oracle/truffle/api/frame/FrameSlot;II[Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* outerVar */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode outerVar
        15: .line 1261
            aload 2 /* blockWithInit */
            aload 0 /* this */
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 5 /* outerVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode outerVar
        end local 3 // com.oracle.js.parser.ir.Symbol symbol
        16: .line 1247
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        17: .line 1264
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isModuleBody:()Z
            ifeq 19
        18: .line 1265
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            aload 2 /* blockWithInit */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createResolveImports:(Lcom/oracle/js/parser/ir/FunctionNode;Ljava/util/List;)V
        19: .line 1267
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block java.util.ArrayList
      StackMap stack:
            aload 2 /* blockWithInit */
            areturn
        end local 2 // java.util.ArrayList blockWithInit
        end local 1 // com.oracle.js.parser.ir.Block block
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   20     1          block  Lcom/oracle/js/parser/ir/Block;
            4   20     2  blockWithInit  Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            6   16     3         symbol  Lcom/oracle/js/parser/ir/Symbol;
           15   16     5       outerVar  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Lcom/oracle/js/parser/ir/Block;)Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
    MethodParameters:
       Name  Flags
      block  

  private void createResolveImports(com.oracle.js.parser.ir.FunctionNode, java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode>);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        start local 2 // java.util.List declarations
         0: .line 1271
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isModule:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1274
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getModule:()Lcom/oracle/js/parser/ir/Module;
            invokevirtual com.oracle.js.parser.ir.Module.getImportEntries:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Module$ImportEntry
            astore 3 /* importEntry */
        start local 3 // com.oracle.js.parser.ir.Module$ImportEntry importEntry
         3: .line 1275
            aload 3 /* importEntry */
            invokevirtual com.oracle.js.parser.ir.Module$ImportEntry.getModuleRequest:()Ljava/lang/String;
            astore 5 /* moduleRequest */
        start local 5 // java.lang.String moduleRequest
         4: .line 1276
            aload 3 /* importEntry */
            invokevirtual com.oracle.js.parser.ir.Module$ImportEntry.getLocalName:()Ljava/lang/String;
            astore 6 /* localName */
        start local 6 // java.lang.String localName
         5: .line 1277
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 6 /* localName */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 7 /* writeLocalNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeLocalNode
         6: .line 1278
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getActiveModule:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* thisModule */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode thisModule
         7: .line 1279
            aload 3 /* importEntry */
            invokevirtual com.oracle.js.parser.ir.Module$ImportEntry.getImportName:()Ljava/lang/String;
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         8: .line 1280
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 10
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 6 /* localName */
            invokevirtual com.oracle.js.parser.ir.Scope.hasSymbol:(Ljava/lang/String;)Z
            ifeq 9
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 6 /* localName */
            invokevirtual com.oracle.js.parser.ir.Scope.getExistingSymbol:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            invokevirtual com.oracle.js.parser.ir.Symbol.hasBeenDeclared:()Z
            ifne 10
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode java.util.List com.oracle.js.parser.ir.Module$ImportEntry java.util.Iterator java.lang.String java.lang.String com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         9: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1281
      StackMap locals:
      StackMap stack:
            aload 2 /* declarations */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 8 /* thisModule */
            aload 5 /* moduleRequest */
            aload 7 /* writeLocalNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createResolveStarImport:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/String;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1282
            goto 15
        12: .line 1283
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 14
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 6 /* localName */
            invokevirtual com.oracle.js.parser.ir.Scope.hasSymbol:(Ljava/lang/String;)Z
            ifeq 13
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 6 /* localName */
            invokevirtual com.oracle.js.parser.ir.Scope.getExistingSymbol:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            invokevirtual com.oracle.js.parser.ir.Symbol.isImportBinding:()Z
            ifne 14
      StackMap locals:
      StackMap stack:
        13: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1284
      StackMap locals:
      StackMap stack:
            aload 2 /* declarations */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 8 /* thisModule */
            aload 5 /* moduleRequest */
            aload 3 /* importEntry */
            invokevirtual com.oracle.js.parser.ir.Module$ImportEntry.getImportName:()Ljava/lang/String;
            aload 7 /* writeLocalNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createResolveNamedImport:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode thisModule
        end local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeLocalNode
        end local 6 // java.lang.String localName
        end local 5 // java.lang.String moduleRequest
        end local 3 // com.oracle.js.parser.ir.Module$ImportEntry importEntry
        15: .line 1274
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.FunctionNode java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        16: .line 1287
            return
        end local 2 // java.util.List declarations
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   17     1    functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            0   17     2    declarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            3   15     3     importEntry  Lcom/oracle/js/parser/ir/Module$ImportEntry;
            4   15     5   moduleRequest  Ljava/lang/String;
            5   15     6       localName  Ljava/lang/String;
            6   15     7  writeLocalNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
            7   15     8      thisModule  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Lcom/oracle/js/parser/ir/FunctionNode;Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;)V
    MethodParameters:
              Name  Flags
      functionNode  
      declarations  

  private com.oracle.truffle.js.nodes.JavaScriptNode prependDynamicScopeBindingInit(com.oracle.js.parser.ir.Block, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/Block;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Block block
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode blockNode
         0: .line 1293
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1294
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* blockWithInit */
        start local 3 // java.util.ArrayList blockWithInit
         2: .line 1295
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getSymbols:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block com.oracle.truffle.js.nodes.JavaScriptNode java.util.ArrayList top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Symbol
            astore 4 /* symbol */
        start local 4 // com.oracle.js.parser.ir.Symbol symbol
         4: .line 1296
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isVar:()Z
            ifeq 6
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getVariableEnvironment:()Lcom/oracle/truffle/js/parser/env/Environment;
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.hasLocalVar:(Ljava/lang/String;)Z
            ifne 6
         5: .line 1297
            aload 3 /* blockWithInit */
            aload 0 /* this */
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createDynamicScopeBinding:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // com.oracle.js.parser.ir.Symbol symbol
         6: .line 1295
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 1300
            aload 3 /* blockWithInit */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 9
         8: .line 1301
            aload 2 /* blockNode */
            areturn
         9: .line 1303
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Block com.oracle.truffle.js.nodes.JavaScriptNode java.util.ArrayList
      StackMap stack:
            aload 3 /* blockWithInit */
            aload 2 /* blockNode */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 1304
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* blockWithInit */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // java.util.ArrayList blockWithInit
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode blockNode
        end local 1 // com.oracle.js.parser.ir.Block block
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   11     1          block  Lcom/oracle/js/parser/ir/Block;
            0   11     2      blockNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   11     3  blockWithInit  Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            4    6     4         symbol  Lcom/oracle/js/parser/ir/Symbol;
    MethodParameters:
           Name  Flags
      block      
      blockNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createDynamicScopeBinding(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.lang.String varName
        start local 2 // boolean deleteable
         0: .line 1308
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            iload 2 /* deleteable */
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findDynamicScopeVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* dynamicScopeVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef dynamicScopeVar
         2: .line 1310
            new com.oracle.truffle.js.nodes.access.DeclareEvalVariableNode
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* varName */
            aload 3 /* dynamicScopeVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 3 /* dynamicScopeVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.WriteNode
            invokespecial com.oracle.truffle.js.nodes.access.DeclareEvalVariableNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)V
            areturn
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef dynamicScopeVar
        end local 2 // boolean deleteable
        end local 1 // java.lang.String varName
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1          varName  Ljava/lang/String;
            0    3     2       deleteable  Z
            2    3     3  dynamicScopeVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
            Name  Flags
      varName     
      deleteable  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformStatements(java.util.List<com.oracle.js.parser.ir.Statement>, boolean);
    descriptor: (Ljava/util/List;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.util.List blockStatements
        start local 2 // boolean terminal
         0: .line 1314
            aload 0 /* this */
            aload 1 /* blockStatements */
            iload 2 /* terminal */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformStatements:(Ljava/util/List;ZLjava/util/List;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // boolean terminal
        end local 1 // java.util.List blockStatements
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  blockStatements  Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;
            0    1     2         terminal  Z
    Signature: (Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                 Name  Flags
      blockStatements  
      terminal         

  private com.oracle.truffle.js.nodes.JavaScriptNode transformStatements(java.util.List<com.oracle.js.parser.ir.Statement>, boolean, java.util.List<com.oracle.truffle.js.nodes.JavaScriptNode>, boolean);
    descriptor: (Ljava/util/List;ZLjava/util/List;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.util.List blockStatements
        start local 2 // boolean terminal
        start local 3 // java.util.List prolog
        start local 4 // boolean expressionBlock
         0: .line 1318
            aload 3 /* prolog */
            invokeinterface java.util.List.size:()I
            aload 1 /* blockStatements */
            invokeinterface java.util.List.size:()I
            iadd
            istore 5 /* size */
        start local 5 // int size
         1: .line 1319
            iload 5 /* size */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* statements */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
         2: .line 1320
            iconst_0
            istore 7 /* pos */
        start local 7 // int pos
         3: .line 1321
            aload 3 /* prolog */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 8
         4: .line 1322
            goto 7
         5: .line 1323
      StackMap locals: int com.oracle.truffle.js.nodes.JavaScriptNode[] int
      StackMap stack:
            aload 6 /* statements */
            iload 7 /* pos */
            aload 3 /* prolog */
            iload 7 /* pos */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            aastore
         6: .line 1322
            iinc 7 /* pos */ 1
      StackMap locals:
      StackMap stack:
         7: iload 7 /* pos */
            aload 3 /* prolog */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
         8: .line 1326
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 8 /* lastNonEmptyIndex */
        start local 8 // int lastNonEmptyIndex
         9: .line 1327
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        10: goto 22
        11: .line 1328
      StackMap locals: int int
      StackMap stack:
            aload 1 /* blockStatements */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Statement
            astore 10 /* statement */
        start local 10 // com.oracle.js.parser.ir.Statement statement
        12: .line 1329
            aload 0 /* this */
            aload 10 /* statement */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformStatementInBlock:(Lcom/oracle/js/parser/ir/Statement;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* statementNode */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode statementNode
        13: .line 1330
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 20
        14: .line 1331
            aload 10 /* statement */
            invokevirtual com.oracle.js.parser.ir.Statement.isCompletionValueNeverEmpty:()Z
            ifne 19
        15: .line 1332
            iload 8 /* lastNonEmptyIndex */
            iflt 20
        16: .line 1333
            aload 6 /* statements */
            iload 8 /* lastNonEmptyIndex */
            aload 0 /* this */
            aload 6 /* statements */
            iload 8 /* lastNonEmptyIndex */
            aaload
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapSetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
        17: .line 1334
            iconst_m1
            istore 8 /* lastNonEmptyIndex */
        18: .line 1336
            goto 20
        19: .line 1337
      StackMap locals: com.oracle.js.parser.ir.Statement com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            iload 7 /* pos */
            istore 8 /* lastNonEmptyIndex */
        20: .line 1340
      StackMap locals:
      StackMap stack:
            aload 6 /* statements */
            iload 7 /* pos */
            iinc 7 /* pos */ 1
            aload 11 /* statementNode */
            aastore
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode statementNode
        end local 10 // com.oracle.js.parser.ir.Statement statement
        21: .line 1327
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            aload 1 /* blockStatements */
            invokeinterface java.util.List.size:()I
            if_icmplt 11
        end local 9 // int i
        23: .line 1342
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 25
            iload 8 /* lastNonEmptyIndex */
            iflt 25
        24: .line 1343
            aload 6 /* statements */
            iload 8 /* lastNonEmptyIndex */
            aload 0 /* this */
            aload 6 /* statements */
            iload 8 /* lastNonEmptyIndex */
            aaload
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapSetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
        25: .line 1346
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 26
            iload 7 /* pos */
            iload 5 /* size */
            if_icmpeq 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 1347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* statements */
            iload 2 /* terminal */
            iload 4 /* expressionBlock */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 8 // int lastNonEmptyIndex
        end local 7 // int pos
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
        end local 5 // int size
        end local 4 // boolean expressionBlock
        end local 3 // java.util.List prolog
        end local 2 // boolean terminal
        end local 1 // java.util.List blockStatements
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   27     1    blockStatements  Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;
            0   27     2           terminal  Z
            0   27     3             prolog  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            0   27     4    expressionBlock  Z
            1   27     5               size  I
            2   27     6         statements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3   27     7                pos  I
            9   27     8  lastNonEmptyIndex  I
           10   23     9                  i  I
           12   21    10          statement  Lcom/oracle/js/parser/ir/Statement;
           13   21    11      statementNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;ZLjava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                 Name  Flags
      blockStatements  
      terminal         
      prolog           
      expressionBlock  

  private com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable enterBlockEnvironment(com.oracle.js.parser.ir.Block);
    descriptor: (Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Block block
         0: .line 1355
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.isFunctionBody:()Z
            ifeq 12
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isScript:()Z
            ifeq 12
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.argumentNames:[Ljava/lang/String;
            ifnonnull 12
         1: .line 1356
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         2: .line 1357
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isEval:()Z
            ifne 6
         3: .line 1358
            new com.oracle.truffle.js.parser.env.GlobalEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokespecial com.oracle.truffle.js.parser.env.GlobalEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;)V
            astore 3 /* globalEnv */
        start local 3 // com.oracle.truffle.js.parser.env.GlobalEnvironment globalEnv
         4: .line 1359
            aload 3 /* globalEnv */
            aload 1 /* block */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.setupGlobalEnvironment:(Lcom/oracle/truffle/js/parser/env/GlobalEnvironment;Lcom/oracle/js/parser/ir/Block;)V
         5: .line 1360
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 3 /* globalEnv */
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 3 // com.oracle.truffle.js.parser.env.GlobalEnvironment globalEnv
         6: .line 1361
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isIndirectEval:()Z
            ifeq 11
         7: .line 1362
            new com.oracle.truffle.js.parser.env.GlobalEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokespecial com.oracle.truffle.js.parser.env.GlobalEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;)V
            astore 3 /* globalEnv */
        start local 3 // com.oracle.truffle.js.parser.env.GlobalEnvironment globalEnv
         8: .line 1363
            new com.oracle.truffle.js.parser.env.BlockEnvironment
            dup
            aload 3 /* globalEnv */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokespecial com.oracle.truffle.js.parser.env.BlockEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;)V
            astore 4 /* blockEnv */
        start local 4 // com.oracle.truffle.js.parser.env.BlockEnvironment blockEnv
         9: .line 1364
            aload 4 /* blockEnv */
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            invokevirtual com.oracle.js.parser.ir.Scope.getSymbols:()Ljava/lang/Iterable;
            invokevirtual com.oracle.truffle.js.parser.env.BlockEnvironment.addFrameSlotsFromSymbols:(Ljava/lang/Iterable;)V
        10: .line 1365
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 4 /* blockEnv */
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 4 // com.oracle.truffle.js.parser.env.BlockEnvironment blockEnv
        end local 3 // com.oracle.truffle.js.parser.env.GlobalEnvironment globalEnv
        11: .line 1367
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 12
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        12: .line 1372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockEnvironment:(Lcom/oracle/js/parser/ir/Scope;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            areturn
        end local 1 // com.oracle.js.parser.ir.Block block
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   13     1            block  Lcom/oracle/js/parser/ir/Block;
            2   12     2  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            4    6     3        globalEnv  Lcom/oracle/truffle/js/parser/env/GlobalEnvironment;
            8   11     3        globalEnv  Lcom/oracle/truffle/js/parser/env/GlobalEnvironment;
            9   11     4         blockEnv  Lcom/oracle/truffle/js/parser/env/BlockEnvironment;
    MethodParameters:
       Name  Flags
      block  

  private com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable enterBlockEnvironment(com.oracle.js.parser.ir.Scope);
    descriptor: (Lcom/oracle/js/parser/ir/Scope;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Scope scope
         0: .line 1376
            aload 1 /* scope */
            ifnull 9
            aload 1 /* scope */
            invokevirtual com.oracle.js.parser.ir.Scope.hasDeclarations:()Z
            ifeq 9
         1: .line 1382
            aload 1 /* scope */
            invokevirtual com.oracle.js.parser.ir.Scope.isFunctionTopScope:()Z
            ifne 2
            aload 1 /* scope */
            invokevirtual com.oracle.js.parser.ir.Scope.isEvalScope:()Z
            ifeq 6
         2: .line 1383
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            instanceof com.oracle.truffle.js.parser.env.FunctionEnvironment
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 1384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            istore 2 /* onlyBlockScoped */
        start local 2 // boolean onlyBlockScoped
         4: .line 1385
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 1 /* scope */
            invokevirtual com.oracle.js.parser.ir.Scope.getSymbols:()Ljava/lang/Iterable;
            iload 2 /* onlyBlockScoped */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.addFrameSlotsFromSymbols:(Ljava/lang/Iterable;Z)V
         5: .line 1386
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 2 // boolean onlyBlockScoped
         6: .line 1388
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.env.BlockEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokespecial com.oracle.truffle.js.parser.env.BlockEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;)V
            astore 2 /* blockEnv */
        start local 2 // com.oracle.truffle.js.parser.env.BlockEnvironment blockEnv
         7: .line 1389
            aload 2 /* blockEnv */
            aload 1 /* scope */
            invokevirtual com.oracle.js.parser.ir.Scope.getSymbols:()Ljava/lang/Iterable;
            invokevirtual com.oracle.truffle.js.parser.env.BlockEnvironment.addFrameSlotsFromSymbols:(Ljava/lang/Iterable;)V
         8: .line 1390
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 2 /* blockEnv */
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 2 // com.oracle.truffle.js.parser.env.BlockEnvironment blockEnv
         9: .line 1393
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 1 // com.oracle.js.parser.ir.Scope scope
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   10     1            scope  Lcom/oracle/js/parser/ir/Scope;
            4    6     2  onlyBlockScoped  Z
            7    9     2         blockEnv  Lcom/oracle/truffle/js/parser/env/BlockEnvironment;
    MethodParameters:
       Name  Flags
      scope  

  private static void setupGlobalEnvironment(com.oracle.truffle.js.parser.env.GlobalEnvironment, com.oracle.js.parser.ir.Block);
    descriptor: (Lcom/oracle/truffle/js/parser/env/GlobalEnvironment;Lcom/oracle/js/parser/ir/Block;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.env.GlobalEnvironment globalEnv
        start local 1 // com.oracle.js.parser.ir.Block block
         0: .line 1403
            aload 1 /* block */
            invokevirtual com.oracle.js.parser.ir.Block.getSymbols:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: com.oracle.truffle.js.parser.env.GlobalEnvironment com.oracle.js.parser.ir.Block top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Symbol
            astore 2 /* symbol */
        start local 2 // com.oracle.js.parser.ir.Symbol symbol
         2: .line 1404
            aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isImportBinding:()Z
            ifeq 4
         3: .line 1405
            goto 9
         4: .line 1407
      StackMap locals: com.oracle.truffle.js.parser.env.GlobalEnvironment com.oracle.js.parser.ir.Block com.oracle.js.parser.ir.Symbol java.util.Iterator
      StackMap stack:
            aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isBlockScoped:()Z
            ifeq 7
         5: .line 1408
            aload 0 /* globalEnv */
            aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isConst:()Z
            invokevirtual com.oracle.truffle.js.parser.env.GlobalEnvironment.addLexicalDeclaration:(Ljava/lang/String;Z)Z
            pop
         6: .line 1409
            goto 9
      StackMap locals:
      StackMap stack:
         7: aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isGlobal:()Z
            ifeq 9
            aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isVar:()Z
            ifeq 9
         8: .line 1410
            aload 0 /* globalEnv */
            aload 2 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.GlobalEnvironment.addVarDeclaration:(Ljava/lang/String;)Z
            pop
        end local 2 // com.oracle.js.parser.ir.Symbol symbol
         9: .line 1403
      StackMap locals: com.oracle.truffle.js.parser.env.GlobalEnvironment com.oracle.js.parser.ir.Block top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 1413
            return
        end local 1 // com.oracle.js.parser.ir.Block block
        end local 0 // com.oracle.truffle.js.parser.env.GlobalEnvironment globalEnv
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  globalEnv  Lcom/oracle/truffle/js/parser/env/GlobalEnvironment;
            0   11     1      block  Lcom/oracle/js/parser/ir/Block;
            2    9     2     symbol  Lcom/oracle/js/parser/ir/Symbol;
    MethodParameters:
           Name  Flags
      globalEnv  
      block      

  private com.oracle.truffle.js.nodes.JavaScriptNode transformStatementInBlock(com.oracle.js.parser.ir.Statement);
    descriptor: (Lcom/oracle/js/parser/ir/Statement;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Statement statement
         0: .line 1416
            aload 0 /* this */
            aload 1 /* statement */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.Statement statement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  statement  Lcom/oracle/js/parser/ir/Statement;
    MethodParameters:
           Name  Flags
      statement  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterBlockStatement(com.oracle.js.parser.ir.BlockStatement);
    descriptor: (Lcom/oracle/js/parser/ir/BlockStatement;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BlockStatement blockStatement
         0: .line 1421
            aload 0 /* this */
            aload 1 /* blockStatement */
            invokevirtual com.oracle.js.parser.ir.BlockStatement.getBlock:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.BlockStatement blockStatement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  blockStatement  Lcom/oracle/js/parser/ir/BlockStatement;
    MethodParameters:
                Name  Flags
      blockStatement  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterLiteralNode(com.oracle.js.parser.ir.LiteralNode<?>);
    descriptor: (Lcom/oracle/js/parser/ir/LiteralNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.LiteralNode literalNode
         0: .line 1426
            aload 1 /* literalNode */
            instanceof com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode
            ifeq 2
         1: .line 1427
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* literalNode */
            checkcast com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterLiteralArrayNode:(Lcom/oracle/js/parser/ir/LiteralNode$ArrayLiteralNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* literalNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 1429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* literalNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterLiteralDefaultNode:(Lcom/oracle/js/parser/ir/LiteralNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* literalNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.LiteralNode literalNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  literalNode  Lcom/oracle/js/parser/ir/LiteralNode<*>;
    Signature: (Lcom/oracle/js/parser/ir/LiteralNode<*>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
             Name  Flags
      literalNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterLiteralDefaultNode(com.oracle.js.parser.ir.LiteralNode<?>);
    descriptor: (Lcom/oracle/js/parser/ir/LiteralNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.LiteralNode literalNode
         0: .line 1434
            aload 1 /* literalNode */
            invokevirtual com.oracle.js.parser.ir.LiteralNode.getValue:()Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 1435
            aload 2 /* value */
            ifnonnull 3
         2: .line 1436
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantNull:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 1437
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.Long
            ifeq 8
         4: .line 1438
            aload 2 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 3 /* longValue */
        start local 3 // long longValue
         5: .line 1439
            lload 3 /* longValue */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isSafeInteger:(J)Z
            ifeq 7
         6: .line 1440
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            lload 3 /* longValue */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantSafeInteger:(J)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         7: .line 1442
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            lload 3 /* longValue */
            l2d
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantDouble:(D)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // long longValue
         8: .line 1443
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof com.oracle.js.parser.Lexer$RegexToken
            ifeq 10
         9: .line 1444
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* value */
            checkcast com.oracle.js.parser.Lexer$RegexToken
            invokevirtual com.oracle.js.parser.Lexer$RegexToken.getExpression:()Ljava/lang/String;
            aload 2 /* value */
            checkcast com.oracle.js.parser.Lexer$RegexToken
            invokevirtual com.oracle.js.parser.Lexer$RegexToken.getOptions:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createRegExpLiteral:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        10: .line 1445
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof java.math.BigInteger
            ifeq 12
        11: .line 1446
            aload 2 /* value */
            checkcast java.math.BigInteger
            invokestatic com.oracle.truffle.js.runtime.BigInt.fromBigInteger:(Ljava/math/BigInteger;)Lcom/oracle/truffle/js/runtime/BigInt;
            astore 2 /* value */
        12: .line 1448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* value */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstant:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.js.parser.ir.LiteralNode literalNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   13     1  literalNode  Lcom/oracle/js/parser/ir/LiteralNode<*>;
            1   13     2        value  Ljava/lang/Object;
            5    8     3    longValue  J
    Signature: (Lcom/oracle/js/parser/ir/LiteralNode<*>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
             Name  Flags
      literalNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterLiteralArrayNode(com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode);
    descriptor: (Lcom/oracle/js/parser/ir/LiteralNode$ArrayLiteralNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode arrayLiteralNode
         0: .line 1452
            aload 1 /* arrayLiteralNode */
            invokevirtual com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode.getElementExpressions:()Ljava/util/List;
            astore 2 /* elementExpressions */
        start local 2 // java.util.List elementExpressions
         1: .line 1453
            aload 2 /* elementExpressions */
            invokeinterface java.util.List.size:()I
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* elements */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] elements
         2: .line 1454
            iconst_0
            istore 4 /* hasSpread */
        start local 4 // boolean hasSpread
         3: .line 1455
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 14
         5: .line 1456
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] int int
      StackMap stack:
            aload 2 /* elementExpressions */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Expression
            astore 6 /* elementExpression */
        start local 6 // com.oracle.js.parser.ir.Expression elementExpression
         6: .line 1457
            iload 4 /* hasSpread */
            ifne 8
            aload 6 /* elementExpression */
            ifnull 7
            aload 6 /* elementExpression */
            getstatic com.oracle.js.parser.TokenType.SPREAD_ARRAY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            ifne 8
      StackMap locals: com.oracle.js.parser.ir.Expression
      StackMap stack:
         7: iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* hasSpread */
        10: .line 1458
            aload 3 /* elements */
            iload 5 /* i */
            aload 6 /* elementExpression */
            ifnull 11
            aload 0 /* this */
            aload 6 /* elementExpression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 12
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] int int com.oracle.js.parser.ir.Expression
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[] int
        11: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEmpty:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] int int com.oracle.js.parser.ir.Expression
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[] int com.oracle.truffle.js.nodes.JavaScriptNode
        12: aastore
        end local 6 // com.oracle.js.parser.ir.Expression elementExpression
        13: .line 1455
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            aload 2 /* elementExpressions */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 5 // int i
        15: .line 1460
            iload 4 /* hasSpread */
            ifeq 16
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* elements */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createArrayLiteralWithSpread:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* elements */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createArrayLiteral:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        17: areturn
        end local 4 // boolean hasSpread
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] elements
        end local 2 // java.util.List elementExpressions
        end local 1 // com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode arrayLiteralNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0                this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   18     1    arrayLiteralNode  Lcom/oracle/js/parser/ir/LiteralNode$ArrayLiteralNode;
            1   18     2  elementExpressions  Ljava/util/List<Lcom/oracle/js/parser/ir/Expression;>;
            2   18     3            elements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3   18     4           hasSpread  Z
            4   15     5                   i  I
            6   13     6   elementExpression  Lcom/oracle/js/parser/ir/Expression;
    MethodParameters:
                  Name  Flags
      arrayLiteralNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterIdentNode(com.oracle.js.parser.ir.IdentNode);
    descriptor: (Lcom/oracle/js/parser/ir/IdentNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IdentNode identNode
         0: .line 1465
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isPropertyName:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1467
      StackMap locals:
      StackMap stack:
            aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isThis:()Z
            ifeq 4
         2: .line 1468
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createThisNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
         3: .line 1469
            goto 16
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals:
      StackMap stack:
         4: aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isSuper:()Z
            ifeq 7
         5: .line 1470
            aload 0 /* this */
            aload 1 /* identNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterIdentNodeSuper:(Lcom/oracle/js/parser/ir/IdentNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
         6: .line 1471
            goto 16
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals:
      StackMap stack:
         7: aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isNewTarget:()Z
            ifeq 10
         8: .line 1472
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterNewTarget:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
         9: .line 1473
            goto 16
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals:
      StackMap stack:
        10: aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isImportMeta:()Z
            ifeq 13
        11: .line 1474
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterImportMeta:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        12: .line 1475
            goto 16
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        13: .line 1476
      StackMap locals:
      StackMap stack:
            aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 3 /* varName */
        start local 3 // java.lang.String varName
        14: .line 1477
            aload 0 /* this */
            aload 3 /* varName */
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVarCheckTDZ:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 4 /* varRef */
        start local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
        15: .line 1478
            aload 4 /* varRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* result */
        end local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
        end local 3 // java.lang.String varName
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        16: .line 1480
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            aload 1 /* identNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode result
        end local 1 // com.oracle.js.parser.ir.IdentNode identNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   17     1  identNode  Lcom/oracle/js/parser/ir/IdentNode;
            3    4     2     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    7     2     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   10     2     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           12   13     2     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           16   17     2     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           14   16     3    varName  Ljava/lang/String;
           15   16     4     varRef  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
           Name  Flags
      identNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterNewTarget();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 1484
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findNewTargetVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.nodes.JavaScriptNode enterIdentNodeSuper(com.oracle.js.parser.ir.IdentNode);
    descriptor: (Lcom/oracle/js/parser/ir/IdentNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IdentNode identNode
         0: .line 1488
            aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isDirectSuper:()Z
            ifne 4
         1: .line 1491
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findSuperVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetPrototype:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* getSuperBase */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode getSuperBase
         2: .line 1492
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.checkThisBindingInitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* receiver */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode receiver
         3: .line 1493
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* getSuperBase */
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createSuperPropertyReference:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode receiver
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode getSuperBase
         4: .line 1496
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 5
            aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isDirectSuper:()Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getThisFunctionLevel:()I
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessCallee:(I)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* activeFunction */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode activeFunction
         6: .line 1498
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* activeFunction */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetPrototype:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* superConstructor */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode superConstructor
         7: .line 1499
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* receiver */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode receiver
         8: .line 1500
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* superConstructor */
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTargetableWrapper:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode receiver
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode superConstructor
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode activeFunction
        end local 1 // com.oracle.js.parser.ir.IdentNode identNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    9     1         identNode  Lcom/oracle/js/parser/ir/IdentNode;
            2    4     2      getSuperBase  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    4     3          receiver  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    9     2    activeFunction  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            7    9     3  superConstructor  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8    9     4          receiver  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      identNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createThisNode();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 1505
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessThis:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.checkThisBindingInitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         2: areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.nodes.JavaScriptNode createThisNodeUnchecked();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 1509
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessThis:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         2: areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.nodes.JavaScriptNode checkThisBindingInitialized(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode accessThisNode
         0: .line 1514
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getNonArrowParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDerivedConstructor:()Z
            ifeq 2
         1: .line 1515
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* accessThisNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDerivedConstructorThis:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 1517
      StackMap locals:
      StackMap stack:
            aload 1 /* accessThisNode */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode accessThisNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  accessThisNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                Name  Flags
      accessThisNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterImportMeta();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 1521
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getActiveModule:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createImportMeta:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.nodes.JavaScriptNode getActiveModule();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 1525
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.inModule:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getOutermostFunctionLevel:()I
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessFrameArgument:(II)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.nodes.JavaScriptNode getActiveScriptOrModule();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
         0: .line 1530
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.inModule:()Z
            ifeq 2
         1: .line 1531
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getActiveModule:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 1533
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;

  private com.oracle.truffle.js.parser.env.Environment$VarRef findScopeVar(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.lang.String name
        start local 2 // boolean skipWith
         0: .line 1537
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 1 /* name */
            iload 2 /* skipWith */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            areturn
        end local 2 // boolean skipWith
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1      name  Ljava/lang/String;
            0    1     2  skipWith  Z
    MethodParameters:
          Name  Flags
      name      
      skipWith  

  private com.oracle.truffle.js.parser.env.Environment$VarRef findScopeVarCheckTDZ(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.lang.String name
        start local 2 // boolean initializationAssignment
         0: .line 1541
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* varRef */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
         1: .line 1542
            aload 3 /* varRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.isFunctionLocal:()Z
            ifeq 14
         2: .line 1543
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 3 /* varRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getName:()Ljava/lang/String;
            invokevirtual com.oracle.js.parser.ir.Scope.findBlockScopedSymbolInFunction:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            astore 4 /* symbol */
        start local 4 // com.oracle.js.parser.ir.Symbol symbol
         3: .line 1544
            aload 4 /* symbol */
            ifnonnull 5
         4: .line 1546
            aload 3 /* varRef */
            areturn
         5: .line 1547
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.js.parser.ir.Symbol
      StackMap stack:
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.hasBeenDeclared:()Z
            ifeq 7
         6: .line 1549
            aload 3 /* varRef */
            areturn
         7: .line 1550
      StackMap locals:
      StackMap stack:
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isDeclaredInSwitchBlock:()Z
            ifeq 9
         8: .line 1553
            aload 3 /* varRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.withTDZCheck:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            areturn
         9: .line 1555
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 10
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.hasBeenDeclared:()Z
            ifeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1556
      StackMap locals:
      StackMap stack:
            iload 2 /* initializationAssignment */
            ifeq 13
        11: .line 1557
            aload 4 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.setHasBeenDeclared:()V
        12: .line 1558
            aload 3 /* varRef */
            areturn
        13: .line 1563
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.parser.GraalJSTranslator$3
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* varRef */
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$3.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Ljava/lang/String;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;)V
            areturn
        end local 4 // com.oracle.js.parser.ir.Symbol symbol
        14: .line 1597
      StackMap locals:
      StackMap stack:
            aload 3 /* varRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.withTDZCheck:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            areturn
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
        end local 2 // boolean initializationAssignment
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   15     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   15     1                      name  Ljava/lang/String;
            0   15     2  initializationAssignment  Z
            1   15     3                    varRef  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3   14     4                    symbol  Lcom/oracle/js/parser/ir/Symbol;
    MethodParameters:
                          Name  Flags
      name                      
      initializationAssignment  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterVarNode(com.oracle.js.parser.ir.VarNode);
    descriptor: (Lcom/oracle/js/parser/ir/VarNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.VarNode varNode
         0: .line 1602
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.getName:()Lcom/oracle/js/parser/ir/IdentNode;
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 2 /* varName */
        start local 2 // java.lang.String varName
         1: .line 1603
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifeq 2
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isBlockScoped:()Z
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentBlock:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.isFunctionBody:()Z
            ifne 4
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 0 /* this */
            aload 2 /* varName */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.isGlobal:()Z
            ifeq 4
         3: .line 1604
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isCallerContextEval:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            aload 1 /* varNode */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 1606
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* symbol */
        start local 3 // com.oracle.js.parser.ir.Symbol symbol
         5: .line 1607
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isBlockScoped:()Z
            ifeq 8
         6: .line 1609
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 2 /* varName */
            invokevirtual com.oracle.js.parser.ir.Scope.getExistingSymbol:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            astore 3 /* symbol */
         7: .line 1610
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 8
            aload 3 /* symbol */
            ifnonnull 8
            new java.lang.AssertionError
            dup
            aload 2 /* varName */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         8: .line 1614
      StackMap locals: com.oracle.js.parser.ir.Symbol
      StackMap stack:
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isAssignment:()Z
            ifeq 11
         9: .line 1615
            aload 0 /* this */
            aload 1 /* varNode */
            aload 2 /* varName */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createVarAssignNode:(Lcom/oracle/js/parser/ir/VarNode;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* assignment */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        10: .line 1616
            goto 17
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
      StackMap locals:
      StackMap stack:
        11: aload 3 /* symbol */
            ifnull 16
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isDestructuring:()Z
            ifeq 12
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isDeclaredInSwitchBlock:()Z
            ifeq 16
      StackMap locals:
      StackMap stack:
        12: aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.hasBeenDeclared:()Z
            ifne 16
        13: .line 1617
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 14
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isBlockScoped:()Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* varName */
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* assignment */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        15: .line 1619
            goto 17
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        16: .line 1620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEmpty:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* assignment */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        17: .line 1625
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* symbol */
            ifnull 20
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isDeclaredInSwitchBlock:()Z
            ifne 20
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isDestructuring:()Z
            ifne 20
        18: .line 1626
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 19
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isBlockScoped:()Z
            ifne 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 1627
      StackMap locals:
      StackMap stack:
            aload 3 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.setHasBeenDeclared:()V
        20: .line 1629
      StackMap locals:
      StackMap stack:
            aload 4 /* assignment */
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        end local 3 // com.oracle.js.parser.ir.Symbol symbol
        end local 2 // java.lang.String varName
        end local 1 // com.oracle.js.parser.ir.VarNode varNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   21     1     varNode  Lcom/oracle/js/parser/ir/VarNode;
            1   21     2     varName  Ljava/lang/String;
            5   21     3      symbol  Lcom/oracle/js/parser/ir/Symbol;
           10   11     4  assignment  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           15   16     4  assignment  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           17   21     4  assignment  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
         Name  Flags
      varNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createVarAssignNode(com.oracle.js.parser.ir.VarNode, java.lang.String);
    descriptor: (Lcom/oracle/js/parser/ir/VarNode;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.VarNode varNode
        start local 2 // java.lang.String varName
         0: .line 1633
            aload 0 /* this */
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.getAssignmentSource:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* rhs */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
         1: .line 1634
            aload 0 /* this */
            aload 2 /* varName */
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 3 /* rhs */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* assignment */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
         2: .line 1635
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isBlockScoped:()Z
            ifeq 10
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isFunctionDeclaration:()Z
            ifeq 10
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionAnnexB:()Z
            ifeq 10
         3: .line 1637
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            astore 5 /* fn */
        start local 5 // com.oracle.js.parser.ir.FunctionNode fn
         4: .line 1638
            aload 5 /* fn */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isStrict:()Z
            ifne 10
            aload 2 /* varName */
            ldc "arguments"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         5: .line 1639
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 2 /* varName */
            invokevirtual com.oracle.js.parser.ir.Scope.getExistingSymbol:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            astore 6 /* symbol */
        start local 6 // com.oracle.js.parser.ir.Symbol symbol
         6: .line 1640
            aload 6 /* symbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isHoistedBlockFunctionDeclaration:()Z
            ifeq 10
         7: .line 1641
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 8
            aload 5 /* fn */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getVarDeclarationBlock:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.js.parser.ir.Block.getScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 2 /* varName */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.hasVarSymbol:(Lcom/oracle/js/parser/ir/Scope;Ljava/lang/String;)Z
            ifne 8
            new java.lang.AssertionError
            dup
            aload 2 /* varName */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         8: .line 1642
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.VarNode java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.FunctionNode com.oracle.js.parser.ir.Symbol
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* varName */
            iconst_1
            iconst_0
            iconst_1
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findVar:(Ljava/lang/String;ZZZZ)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.withRequired:(Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 4 /* assignment */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* assignment */
         9: .line 1643
            aload 0 /* this */
            aload 4 /* assignment */
            aload 1 /* varNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        end local 6 // com.oracle.js.parser.ir.Symbol symbol
        end local 5 // com.oracle.js.parser.ir.FunctionNode fn
        10: .line 1649
      StackMap locals:
      StackMap stack:
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isClassDeclaration:()Z
            ifeq 12
        11: .line 1650
            aload 0 /* this */
            aload 4 /* assignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.discardResult:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        12: .line 1653
      StackMap locals:
      StackMap stack:
            aload 1 /* varNode */
            invokevirtual com.oracle.js.parser.ir.VarNode.isHoistableDeclaration:()Z
            ifne 14
        13: .line 1654
            aload 0 /* this */
            aload 4 /* assignment */
            aload 1 /* varNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        14: .line 1656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* assignment */
            aload 1 /* varNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        15: .line 1657
            aload 0 /* this */
            aload 4 /* assignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.discardResult:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
        end local 2 // java.lang.String varName
        end local 1 // com.oracle.js.parser.ir.VarNode varNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   16     1     varNode  Lcom/oracle/js/parser/ir/VarNode;
            0   16     2     varName  Ljava/lang/String;
            1   16     3         rhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   16     4  assignment  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   10     5          fn  Lcom/oracle/js/parser/ir/FunctionNode;
            6   10     6      symbol  Lcom/oracle/js/parser/ir/Symbol;
    MethodParameters:
         Name  Flags
      varNode  
      varName  

  private static boolean hasVarSymbol(com.oracle.js.parser.ir.Scope, java.lang.String);
    descriptor: (Lcom/oracle/js/parser/ir/Scope;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.js.parser.ir.Scope scope
        start local 1 // java.lang.String varName
         0: .line 1661
            aload 0 /* scope */
            aload 1 /* varName */
            invokevirtual com.oracle.js.parser.ir.Scope.getExistingSymbol:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            astore 2 /* varSymbol */
        start local 2 // com.oracle.js.parser.ir.Symbol varSymbol
         1: .line 1662
            aload 2 /* varSymbol */
            ifnull 2
            aload 2 /* varSymbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isVar:()Z
            ifeq 2
            aload 2 /* varSymbol */
            invokevirtual com.oracle.js.parser.ir.Symbol.isParam:()Z
            ifne 2
            iconst_1
            ireturn
      StackMap locals: com.oracle.js.parser.ir.Symbol
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // com.oracle.js.parser.ir.Symbol varSymbol
        end local 1 // java.lang.String varName
        end local 0 // com.oracle.js.parser.ir.Scope scope
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0      scope  Lcom/oracle/js/parser/ir/Scope;
            0    3     1    varName  Ljava/lang/String;
            1    3     2  varSymbol  Lcom/oracle/js/parser/ir/Symbol;
    MethodParameters:
         Name  Flags
      scope    
      varName  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterWhileNode(com.oracle.js.parser.ir.WhileNode);
    descriptor: (Lcom/oracle/js/parser/ir/WhileNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.WhileNode whileNode
         0: .line 1667
            aload 0 /* this */
            aload 1 /* whileNode */
            invokevirtual com.oracle.js.parser.ir.WhileNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* test */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode test
         1: .line 1668
            aload 0 /* this */
            aload 2 /* test */
            aload 1 /* whileNode */
            invokevirtual com.oracle.js.parser.ir.WhileNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         2: .line 1669
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.pushContinueTarget:(Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;
            astore 5 /* target */
        start local 5 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable target
         4: .line 1670
            aload 0 /* this */
            aload 1 /* whileNode */
            invokevirtual com.oracle.js.parser.ir.WhileNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* body */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode body
         5: .line 1671
            aload 0 /* this */
            aload 5 /* target */
            aload 6 /* body */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapContinueTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* wrappedBody */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
         6: .line 1673
            aload 1 /* whileNode */
            invokevirtual com.oracle.js.parser.ir.WhileNode.isDoWhile:()Z
            ifeq 9
         7: .line 1674
            aload 0 /* this */
            aload 2 /* test */
            aload 7 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createDoWhile:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
         8: .line 1675
            goto 10
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
         9: .line 1676
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.WhileNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* test */
            aload 7 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createWhileDo:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        10: .line 1678
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 5 /* target */
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* whileNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapBreakTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearAndGetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        11: .line 1679
            aload 5 /* target */
            ifnull 12
            aload 5 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
        12: .line 1678
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
            areturn
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode body
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.WhileNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack: java.lang.Throwable
        13: astore 3
        14: .line 1679
            aload 5 /* target */
            ifnull 15
            aload 5 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
        end local 5 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable target
      StackMap locals:
      StackMap stack:
        15: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 4
            aload 3
            ifnonnull 17
            aload 4
            astore 3
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 3
            aload 4
            if_acmpeq 18
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 3
            athrow
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 1 // com.oracle.js.parser.ir.WhileNode whileNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   19     1    whileNode  Lcom/oracle/js/parser/ir/WhileNode;
            1   19     2         test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   15     5       target  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
            5   13     6         body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6   13     7  wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8    9     8       result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           10   13     8       result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
           4    11      13  any
           3    12      16  any
          13    16      16  any
    MethodParameters:
           Name  Flags
      whileNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createDoWhile(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 1683
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* condition */
            aload 2 /* body */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDoWhile:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  condition  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2       body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      condition  
      body       

  private com.oracle.truffle.js.nodes.JavaScriptNode createWhileDo(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
         0: .line 1687
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* condition */
            aload 2 /* body */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWhileDo:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  condition  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2       body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      condition  
      body       

  private com.oracle.truffle.js.nodes.JavaScriptNode wrapGetCompletionValue(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode target
         0: .line 1691
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 3
         1: .line 1692
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* returnVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         2: .line 1693
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 1 /* target */
            aastore
            dup
            iconst_1
            aload 2 /* returnVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         3: .line 1695
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode target
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1     target  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     2  returnVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
        Name  Flags
      target  

  private com.oracle.truffle.js.nodes.JavaScriptNode wrapSetCompletionValue(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
         0: .line 1702
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 3
         1: .line 1703
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* returnVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         2: .line 1704
            aload 2 /* returnVar */
            aload 1 /* statement */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         3: .line 1706
      StackMap locals:
      StackMap stack:
            aload 1 /* statement */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  statement  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     2  returnVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
           Name  Flags
      statement  

  private com.oracle.truffle.js.nodes.JavaScriptNode wrapClearCompletionValue(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
         0: .line 1710
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 3
         1: .line 1711
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* returnVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         2: .line 1712
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 2 /* returnVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_1
            aload 1 /* statement */
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         3: .line 1714
      StackMap locals:
      StackMap stack:
            aload 1 /* statement */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  statement  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     2  returnVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
           Name  Flags
      statement  

  private com.oracle.truffle.js.nodes.JavaScriptNode wrapClearAndGetCompletionValue(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
         0: .line 1722
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 3
         1: .line 1723
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* returnVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         2: .line 1724
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_3
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 2 /* returnVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_1
            aload 1 /* statement */
            aastore
            dup
            iconst_2
            aload 2 /* returnVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         3: .line 1726
      StackMap locals:
      StackMap stack:
            aload 1 /* statement */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  statement  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     2  returnVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
           Name  Flags
      statement  

  private com.oracle.truffle.js.nodes.JavaScriptNode wrapSaveAndRestoreCompletionValue(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
         0: .line 1730
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 4
         1: .line 1731
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getReturnSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* returnVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         2: .line 1732
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* tempVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef tempVar
         3: .line 1733
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_3
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 3 /* tempVar */
            aload 2 /* returnVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_1
            aload 1 /* statement */
            aastore
            dup
            iconst_2
            aload 2 /* returnVar */
            aload 3 /* tempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef tempVar
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef returnVar
         4: .line 1735
      StackMap locals:
      StackMap stack:
            aload 1 /* statement */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode statement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  statement  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    4     2  returnVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3    4     3    tempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
           Name  Flags
      statement  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterForNode(com.oracle.js.parser.ir.ForNode);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
         0: .line 1741
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            ifnull 1
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForInOrOf:()Z
            ifne 1
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEmpty:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         2: astore 2 /* init */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode init
         3: .line 1742
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            ifnull 4
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.js.parser.ir.JoinPredecessorExpression.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            ifnull 4
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 5
         4: .line 1743
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         5: .line 1742
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
            astore 3 /* test */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode test
         6: .line 1744
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getModify:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            ifnull 7
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getModify:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getModify:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 8
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         7: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEmpty:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         8: astore 4 /* modify */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode modify
         9: .line 1745
            aconst_null
            astore 5
            aconst_null
            astore 6
        10: aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.pushContinueTarget:(Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable target
        11: .line 1747
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForOf:()Z
            ifeq 14
        12: .line 1748
            aload 0 /* this */
            aload 1 /* forNode */
            aload 4 /* modify */
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForOf:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        13: .line 1749
            goto 23
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack:
        14: aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForIn:()Z
            ifeq 17
        15: .line 1750
            aload 0 /* this */
            aload 1 /* forNode */
            aload 4 /* modify */
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForIn:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        16: .line 1751
            goto 23
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals:
      StackMap stack:
        17: aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForAwaitOf:()Z
            ifeq 20
        18: .line 1752
            aload 0 /* this */
            aload 1 /* forNode */
            aload 4 /* modify */
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForAwaitOf:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* result */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        19: .line 1753
            goto 23
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        20: .line 1754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* body */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode body
        21: .line 1755
            aload 0 /* this */
            aload 7 /* target */
            aload 9 /* body */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapContinueTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 10 /* wrappedBody */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        22: .line 1756
            aload 7 /* target */
            aload 0 /* this */
            aload 1 /* forNode */
            aload 2 /* init */
            aload 3 /* test */
            aload 4 /* modify */
            aload 10 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarFor:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapBreakTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* result */
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode body
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
        23: .line 1759
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 8 /* result */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearAndGetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        24: .line 1760
            aload 7 /* target */
            ifnull 25
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
        25: .line 1759
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
            areturn
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode result
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack: java.lang.Throwable
        26: astore 5
        27: .line 1760
            aload 7 /* target */
            ifnull 28
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
        end local 7 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable target
      StackMap locals:
      StackMap stack:
        28: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 6
            aload 5
            ifnonnull 30
            aload 6
            astore 5
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 5
            aload 6
            if_acmpeq 31
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        31: aload 5
            athrow
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode init
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   32     1      forNode  Lcom/oracle/js/parser/ir/ForNode;
            3   32     2         init  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6   32     3         test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   32     4       modify  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   28     7       target  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
           13   14     8       result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           16   17     8       result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           19   20     8       result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           23   26     8       result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           21   23     9         body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           22   23    10  wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
          11    24      26  any
          10    25      29  any
          26    29      29  any
    MethodParameters:
         Name  Flags
      forNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode desugarFor(com.oracle.js.parser.ir.ForNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=9, args_size=6
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode init
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode test
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
         0: .line 1764
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.needsPerIterationScope:(Lcom/oracle/js/parser/ir/ForNode;)Z
            ifeq 8
         1: .line 1765
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 6 /* firstTempVar */
        start local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef firstTempVar
         2: .line 1766
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getBlockFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            astore 7 /* iterationBlockFrameDescriptor */
        start local 7 // com.oracle.truffle.api.frame.FrameDescriptor iterationBlockFrameDescriptor
         3: .line 1767
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* test */
            aload 5 /* wrappedBody */
            aload 4 /* modify */
            aload 7 /* iterationBlockFrameDescriptor */
            aload 6 /* firstTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         4: .line 1768
            aload 6 /* firstTempVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         5: .line 1767
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFor:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/StatementNode;
            astore 8 /* newFor */
        start local 8 // com.oracle.truffle.js.nodes.control.StatementNode newFor
         6: .line 1769
            aload 0 /* this */
            aload 8 /* newFor */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         7: .line 1770
            aload 0 /* this */
            iconst_3
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 2 /* init */
            aastore
            dup
            iconst_1
            aload 6 /* firstTempVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_2
            aload 8 /* newFor */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 8 // com.oracle.truffle.js.nodes.control.StatementNode newFor
        end local 7 // com.oracle.truffle.api.frame.FrameDescriptor iterationBlockFrameDescriptor
        end local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef firstTempVar
         8: .line 1772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* test */
            aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 5 /* wrappedBody */
            aastore
            dup
            iconst_1
            aload 4 /* modify */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDesugaredFor:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* whileDo */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode whileDo
         9: .line 1773
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getTest:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            ifnonnull 12
        10: .line 1774
            aload 0 /* this */
            aload 3 /* test */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        11: .line 1775
            goto 13
        12: .line 1776
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 6 /* whileDo */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        13: .line 1778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 2 /* init */
            aastore
            dup
            iconst_1
            aload 6 /* whileDo */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode whileDo
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode init
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   14     0                           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   14     1                        forNode  Lcom/oracle/js/parser/ir/ForNode;
            0   14     2                           init  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   14     3                           test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   14     4                         modify  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   14     5                    wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    8     6                   firstTempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3    8     7  iterationBlockFrameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            6    8     8                         newFor  Lcom/oracle/truffle/js/nodes/control/StatementNode;
            9   14     6                        whileDo  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
             Name  Flags
      forNode      
      init         
      test         
      modify       
      wrappedBody  

  private com.oracle.truffle.js.nodes.JavaScriptNode desugarForIn(com.oracle.js.parser.ir.ForNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable<com.oracle.truffle.js.nodes.control.ContinueTarget>);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        start local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
         0: .line 1783
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForEach:()Z
            ifeq 3
         1: .line 1784
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* modify */
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEnumerate:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* createIteratorNode */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode createIteratorNode
         2: .line 1785
            goto 6
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode createIteratorNode
         3: .line 1786
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 5
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForIn:()Z
            ifeq 4
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForEach:()Z
            ifne 4
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForOf:()Z
            ifeq 5
      StackMap locals:
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* modify */
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEnumerate:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* createIteratorNode */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode createIteratorNode
         6: .line 1789
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 1 /* forNode */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 4 /* createIteratorNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetIterator:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 3 /* jumpTarget */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForInOrOfBody:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode createIteratorNode
        end local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    7     1             forNode  Lcom/oracle/js/parser/ir/ForNode;
            0    7     2              modify  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    7     3          jumpTarget  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
            2    3     4  createIteratorNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    7     4  createIteratorNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      forNode     
      modify      
      jumpTarget  

  private com.oracle.truffle.js.nodes.JavaScriptNode desugarForOf(com.oracle.js.parser.ir.ForNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable<com.oracle.truffle.js.nodes.control.ContinueTarget>);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        start local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
         0: .line 1793
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForOf:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* modify */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetIterator:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* getIterator */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode getIterator
         2: .line 1795
            aload 0 /* this */
            aload 1 /* forNode */
            aload 4 /* getIterator */
            aload 3 /* jumpTarget */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForInOrOfBody:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode getIterator
        end local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1      forNode  Lcom/oracle/js/parser/ir/ForNode;
            0    3     2       modify  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    3     3   jumpTarget  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
            2    3     4  getIterator  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      forNode     
      modify      
      jumpTarget  

  private com.oracle.truffle.js.nodes.JavaScriptNode desugarForInOrOfBody(com.oracle.js.parser.ir.ForNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable<com.oracle.truffle.js.nodes.control.ContinueTarget>);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=21, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode iterator
        start local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
         0: .line 1799
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForInOrOf:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 4 /* iteratorVar */
        start local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar
         2: .line 1801
            aload 4 /* iteratorVar */
            aload 2 /* iterator */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* iteratorInit */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorInit
         3: .line 1802
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 6 /* nextResultVar */
        start local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar
         4: .line 1803
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 4 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorNext:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* iteratorNext */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorNext
         5: .line 1806
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
         6: .line 1807
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 4 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorSetDone:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         7: .line 1808
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.NOT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 6 /* nextResultVar */
            aload 7 /* iteratorNext */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorComplete:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createUnary:(Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         8: .line 1806
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* condition */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode condition
         9: .line 1810
            aconst_null
            astore 10
            aconst_null
            astore 11
        10: aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.needsPerIterationScope:(Lcom/oracle/js/parser/ir/ForNode;)Z
            ifeq 11
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentBlock:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockEnvironment:(Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            goto 12
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode top java.lang.Throwable java.lang.Throwable
      StackMap stack:
        11: new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
        12: astore 12 /* blockEnv */
        start local 12 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
        13: .line 1812
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 6 /* nextResultVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 13 /* nextResultVar2 */
        start local 13 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar2
        14: .line 1813
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 14 /* nextValueVar */
        start local 14 // com.oracle.truffle.js.parser.env.Environment$VarRef nextValueVar
        15: .line 1814
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 4 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 15 /* iteratorVar2 */
        start local 15 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar2
        16: .line 1815
            aload 13 /* nextResultVar2 */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 16 /* nextResult */
        start local 16 // com.oracle.truffle.js.nodes.JavaScriptNode nextResult
        17: .line 1816
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 16 /* nextResult */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorValue:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 17 /* nextValue */
        start local 17 // com.oracle.truffle.js.nodes.JavaScriptNode nextValue
        18: .line 1817
            aload 14 /* nextValueVar */
            aload 17 /* nextValue */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 18 /* writeNextValue */
        start local 18 // com.oracle.truffle.js.nodes.JavaScriptNode writeNextValue
        19: .line 1818
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            aload 14 /* nextValueVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForHeadAssignment:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 19 /* writeNext */
        start local 19 // com.oracle.truffle.js.nodes.JavaScriptNode writeNext
        20: .line 1819
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 20 /* body */
        start local 20 // com.oracle.truffle.js.nodes.JavaScriptNode body
        21: .line 1820
            aload 12 /* blockEnv */
            aload 0 /* this */
            iconst_4
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
        22: .line 1821
            aload 18 /* writeNextValue */
            aastore
            dup
            iconst_1
        23: .line 1822
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 15 /* iteratorVar2 */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorSetDone:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_2
        24: .line 1823
            aload 19 /* writeNext */
            aastore
            dup
            iconst_3
        25: .line 1824
            aload 20 /* body */
            aastore
        26: .line 1820
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.wrapBlockScope:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* wrappedBody */
        end local 20 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 19 // com.oracle.truffle.js.nodes.JavaScriptNode writeNext
        end local 18 // com.oracle.truffle.js.nodes.JavaScriptNode writeNextValue
        end local 17 // com.oracle.truffle.js.nodes.JavaScriptNode nextValue
        end local 16 // com.oracle.truffle.js.nodes.JavaScriptNode nextResult
        end local 15 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar2
        end local 14 // com.oracle.truffle.js.parser.env.Environment$VarRef nextValueVar
        end local 13 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar2
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        27: .line 1825
            aload 12 /* blockEnv */
            ifnull 33
            aload 12 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
            goto 33
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        28: astore 10
            aload 12 /* blockEnv */
            ifnull 29
            aload 12 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 12 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
      StackMap locals:
      StackMap stack:
        29: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 11
            aload 10
            ifnonnull 31
            aload 11
            astore 10
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 10
            aload 11
            if_acmpeq 32
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 10
            athrow
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        33: .line 1826
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* jumpTarget */
            aload 9 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapContinueTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* wrappedBody */
        34: .line 1827
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForOf:()Z
            ifeq 35
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 8 /* condition */
            aload 9 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDesugaredForOf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 8 /* condition */
            aload 9 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDesugaredForIn:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        36: astore 10 /* whileNode */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode whileNode
        37: .line 1828
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* jumpTarget */
            aload 10 /* whileNode */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapBreakTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 4 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorCloseIfNotDone:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* wrappedWhile */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedWhile
        38: .line 1829
            aload 4 /* iteratorVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.runtime.JSFrameUtil.DEFAULT_VALUE:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstant:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* resetIterator */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode resetIterator
        39: .line 1830
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 11 /* wrappedWhile */
            aload 12 /* resetIterator */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTryFinally:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* wrappedWhile */
        40: .line 1831
            aload 0 /* this */
            aload 10 /* whileNode */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        41: .line 1832
            aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 5 /* iteratorInit */
            aastore
            dup
            iconst_1
            aload 11 /* wrappedWhile */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode resetIterator
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedWhile
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode whileNode
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorNext
        end local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorInit
        end local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar
        end local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode iterator
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   42     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   42     1         forNode  Lcom/oracle/js/parser/ir/ForNode;
            0   42     2        iterator  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   42     3      jumpTarget  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
            2   42     4     iteratorVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3   42     5    iteratorInit  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   42     6   nextResultVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            5   42     7    iteratorNext  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   42     8       condition  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           27   28     9     wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           33   42     9     wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           13   29    12        blockEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
           14   27    13  nextResultVar2  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           15   27    14    nextValueVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           16   27    15    iteratorVar2  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           17   27    16      nextResult  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           18   27    17       nextValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           19   27    18  writeNextValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           20   27    19       writeNext  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           21   27    20            body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           37   42    10       whileNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           38   42    11    wrappedWhile  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           39   42    12   resetIterator  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
          13    27      28  any
          10    30      30  any
    Signature: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      forNode     
      iterator    
      jumpTarget  

  private com.oracle.truffle.js.nodes.JavaScriptNode desugarForHeadAssignment(com.oracle.js.parser.ir.ForNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode next
         0: .line 1836
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.hasPerIterationScope:()Z
            istore 3 /* lexicalBindingInit */
        start local 3 // boolean lexicalBindingInit
         1: .line 1837
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 3
            iload 3 /* lexicalBindingInit */
            ifeq 3
         2: .line 1838
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.IdentNode
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            iload 3 /* lexicalBindingInit */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVarCheckTDZ:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 2 /* next */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 1841
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getInit:()Lcom/oracle/js/parser/ir/Expression;
            aload 2 /* next */
            iload 3 /* lexicalBindingInit */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // boolean lexicalBindingInit
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode next
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1             forNode  Lcom/oracle/js/parser/ir/ForNode;
            0    4     2                next  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    4     3  lexicalBindingInit  Z
    MethodParameters:
         Name  Flags
      forNode  
      next     

  private com.oracle.truffle.js.nodes.JavaScriptNode desugarForAwaitOf(com.oracle.js.parser.ir.ForNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable<com.oracle.truffle.js.nodes.control.ContinueTarget>);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=24, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        start local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
         0: .line 1846
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.isForAwaitOf:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1847
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* modify */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetAsyncIterator:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* getIterator */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode getIterator
         2: .line 1848
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 5 /* iteratorVar */
        start local 5 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar
         3: .line 1849
            aload 5 /* iteratorVar */
            aload 4 /* getIterator */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* iteratorInit */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorInit
         4: .line 1850
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 7 /* nextResultVar */
        start local 7 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar
         5: .line 1852
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addAwait:()V
         6: .line 1853
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getAsyncResultSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 8 /* asyncResultNode */
        start local 8 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncResultNode
         7: .line 1854
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getAsyncContextSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 9 /* asyncContextNode */
        start local 9 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncContextNode
         8: .line 1855
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 5 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 9 /* asyncContextNode */
            aload 8 /* asyncResultNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAsyncIteratorNext:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 10 /* iteratorNext */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorNext
         9: .line 1858
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
        10: .line 1859
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorSetDone:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        11: .line 1860
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.NOT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 7 /* nextResultVar */
            aload 10 /* iteratorNext */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorComplete:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createUnary:(Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        12: .line 1858
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* condition */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        13: .line 1862
            aconst_null
            astore 13
            aconst_null
            astore 14
        14: aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.needsPerIterationScope:(Lcom/oracle/js/parser/ir/ForNode;)Z
            ifeq 15
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentBlock:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockEnvironment:(Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            goto 16
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode top java.lang.Throwable java.lang.Throwable
      StackMap stack:
        15: new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
        16: astore 15 /* blockEnv */
        start local 15 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
        17: .line 1864
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 7 /* nextResultVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 16 /* nextResultVar2 */
        start local 16 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar2
        18: .line 1865
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 17 /* nextValueVar */
        start local 17 // com.oracle.truffle.js.parser.env.Environment$VarRef nextValueVar
        19: .line 1866
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 5 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 18 /* iteratorVar2 */
        start local 18 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar2
        20: .line 1867
            aload 16 /* nextResultVar2 */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 19 /* nextResult */
        start local 19 // com.oracle.truffle.js.nodes.JavaScriptNode nextResult
        21: .line 1868
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 19 /* nextResult */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorValue:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 20 /* nextValue */
        start local 20 // com.oracle.truffle.js.nodes.JavaScriptNode nextValue
        22: .line 1869
            aload 17 /* nextValueVar */
            aload 20 /* nextValue */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 21 /* writeNextValue */
        start local 21 // com.oracle.truffle.js.nodes.JavaScriptNode writeNextValue
        23: .line 1870
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* forNode */
            aload 17 /* nextValueVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.desugarForHeadAssignment:(Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 22 /* writeNext */
        start local 22 // com.oracle.truffle.js.nodes.JavaScriptNode writeNext
        24: .line 1871
            aload 0 /* this */
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 23 /* body */
        start local 23 // com.oracle.truffle.js.nodes.JavaScriptNode body
        25: .line 1872
            aload 15 /* blockEnv */
            aload 0 /* this */
            iconst_4
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
        26: .line 1873
            aload 21 /* writeNextValue */
            aastore
            dup
            iconst_1
        27: .line 1874
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 18 /* iteratorVar2 */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_0
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorSetDone:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_2
        28: .line 1875
            aload 22 /* writeNext */
            aastore
            dup
            iconst_3
        29: .line 1876
            aload 23 /* body */
            aastore
        30: .line 1872
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.wrapBlockScope:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* wrappedBody */
        end local 23 // com.oracle.truffle.js.nodes.JavaScriptNode body
        end local 22 // com.oracle.truffle.js.nodes.JavaScriptNode writeNext
        end local 21 // com.oracle.truffle.js.nodes.JavaScriptNode writeNextValue
        end local 20 // com.oracle.truffle.js.nodes.JavaScriptNode nextValue
        end local 19 // com.oracle.truffle.js.nodes.JavaScriptNode nextResult
        end local 18 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar2
        end local 17 // com.oracle.truffle.js.parser.env.Environment$VarRef nextValueVar
        end local 16 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar2
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        31: .line 1877
            aload 15 /* blockEnv */
            ifnull 37
            aload 15 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
            goto 37
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        32: astore 13
            aload 15 /* blockEnv */
            ifnull 33
            aload 15 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 15 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
      StackMap locals:
      StackMap stack:
        33: aload 13
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 14
            aload 13
            ifnonnull 35
            aload 14
            astore 13
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 13
            aload 14
            if_acmpeq 36
            aload 13
            aload 14
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 13
            athrow
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        37: .line 1878
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ForNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* jumpTarget */
            aload 12 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapContinueTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* wrappedBody */
        38: .line 1879
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 11 /* condition */
            aload 12 /* wrappedBody */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDesugaredForAwaitOf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* whileNode */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode whileNode
        39: .line 1880
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addAwait:()V
        40: .line 1881
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* jumpTarget */
            aload 13 /* whileNode */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapBreakTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 5 /* iteratorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 9 /* asyncContextNode */
            aload 8 /* asyncResultNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAsyncIteratorCloseWrapper:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* wrappedWhile */
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedWhile
        41: .line 1882
            aload 5 /* iteratorVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.runtime.JSFrameUtil.DEFAULT_VALUE:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstant:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 15 /* resetIterator */
        start local 15 // com.oracle.truffle.js.nodes.JavaScriptNode resetIterator
        42: .line 1883
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 14 /* wrappedWhile */
            aload 15 /* resetIterator */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTryFinally:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* wrappedWhile */
        43: .line 1884
            aload 0 /* this */
            aload 13 /* whileNode */
            aload 1 /* forNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        44: .line 1885
            aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 6 /* iteratorInit */
            aastore
            dup
            iconst_1
            aload 14 /* wrappedWhile */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 15 // com.oracle.truffle.js.nodes.JavaScriptNode resetIterator
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedWhile
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode whileNode
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode wrappedBody
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode condition
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorNext
        end local 9 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncContextNode
        end local 8 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncResultNode
        end local 7 // com.oracle.truffle.js.parser.env.Environment$VarRef nextResultVar
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode iteratorInit
        end local 5 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorVar
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode getIterator
        end local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable jumpTarget
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode modify
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   45     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   45     1           forNode  Lcom/oracle/js/parser/ir/ForNode;
            0   45     2            modify  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   45     3        jumpTarget  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;
            2   45     4       getIterator  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3   45     5       iteratorVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            4   45     6      iteratorInit  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            5   45     7     nextResultVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            7   45     8   asyncResultNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
            8   45     9  asyncContextNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
            9   45    10      iteratorNext  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           13   45    11         condition  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           31   32    12       wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           37   45    12       wrappedBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           17   33    15          blockEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
           18   31    16    nextResultVar2  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           19   31    17      nextValueVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           20   31    18      iteratorVar2  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           21   31    19        nextResult  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           22   31    20         nextValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           23   31    21    writeNextValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           24   31    22         writeNext  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           25   31    23              body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           39   45    13         whileNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           41   45    14      wrappedWhile  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           42   45    15     resetIterator  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
          17    31      32  any
          14    34      34  any
    Signature: (Lcom/oracle/js/parser/ir/ForNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/ContinueTarget;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      forNode     
      modify      
      jumpTarget  

  private boolean needsPerIterationScope(com.oracle.js.parser.ir.ForNode);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ForNode forNode
         0: .line 1890
            aload 1 /* forNode */
            invokevirtual com.oracle.js.parser.ir.ForNode.hasPerIterationScope:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentBlock:()Lcom/oracle/js/parser/ir/Block;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.hasClosures:(Lcom/oracle/js/parser/ir/Node;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // com.oracle.js.parser.ir.ForNode forNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1  forNode  Lcom/oracle/js/parser/ir/ForNode;
    MethodParameters:
         Name  Flags
      forNode  

  private static boolean hasClosures(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node node
         0: .line 1907
            new com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor
            dup
            new com.oracle.js.parser.ir.LexicalContext
            dup
            invokespecial com.oracle.js.parser.ir.LexicalContext.<init>:()V
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor.<init>:(Lcom/oracle/js/parser/ir/LexicalContext;)V
            astore 1 /* visitor */
        start local 1 // com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor visitor
         1: .line 1908
            aload 0 /* node */
            aload 1 /* visitor */
            invokevirtual com.oracle.js.parser.ir.Node.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
            pop
         2: .line 1909
            aload 1 /* visitor */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor.hasClosures:Z
            ireturn
        end local 1 // com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor visitor
        end local 0 // com.oracle.js.parser.ir.Node node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     node  Lcom/oracle/js/parser/ir/Node;
            1    3     1  visitor  Lcom/oracle/truffle/js/parser/GraalJSTranslator$1HasClosuresVisitor;
    MethodParameters:
      Name  Flags
      node  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterLabelNode(com.oracle.js.parser.ir.LabelNode);
    descriptor: (Lcom/oracle/js/parser/ir/LabelNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.LabelNode labelNode
         0: .line 1914
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aload 1 /* labelNode */
            invokevirtual com.oracle.js.parser.ir.LabelNode.getLabelName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.pushBreakTarget:(Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;
            astore 4 /* breakTarget */
        start local 4 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable breakTarget
         2: .line 1915
            aload 0 /* this */
            aload 1 /* labelNode */
            invokevirtual com.oracle.js.parser.ir.LabelNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* body */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode body
         3: .line 1916
            aload 4 /* breakTarget */
            aload 5 /* body */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapLabelBreakTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         4: .line 1917
            aload 4 /* breakTarget */
            ifnull 5
            aload 4 /* breakTarget */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
         5: .line 1916
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.LabelNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
            areturn
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode body
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.LabelNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 1917
            aload 4 /* breakTarget */
            ifnull 8
            aload 4 /* breakTarget */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
        end local 4 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable breakTarget
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
        end local 1 // com.oracle.js.parser.ir.LabelNode labelNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   12     1    labelNode  Lcom/oracle/js/parser/ir/LabelNode;
            2    8     4  breakTarget  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/BreakTarget;>;
            3    6     5         body  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
           2     4       6  any
           1     5       9  any
           6     9       9  any
    MethodParameters:
           Name  Flags
      labelNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterBreakNode(com.oracle.js.parser.ir.BreakNode);
    descriptor: (Lcom/oracle/js/parser/ir/BreakNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BreakNode breakNode
         0: .line 1922
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aload 1 /* breakNode */
            invokevirtual com.oracle.js.parser.ir.BreakNode.getLabelName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.findBreakTarget:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/control/BreakTarget;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBreak:(Lcom/oracle/truffle/js/nodes/control/BreakTarget;)Lcom/oracle/truffle/js/nodes/control/BreakNode;
            aload 1 /* breakNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.BreakNode breakNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  breakNode  Lcom/oracle/js/parser/ir/BreakNode;
    MethodParameters:
           Name  Flags
      breakNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterContinueNode(com.oracle.js.parser.ir.ContinueNode);
    descriptor: (Lcom/oracle/js/parser/ir/ContinueNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ContinueNode continueNode
         0: .line 1927
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aload 1 /* continueNode */
            invokevirtual com.oracle.js.parser.ir.ContinueNode.getLabelName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.findContinueTarget:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/control/ContinueTarget;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createContinue:(Lcom/oracle/truffle/js/nodes/control/ContinueTarget;)Lcom/oracle/truffle/js/nodes/control/ContinueNode;
            aload 1 /* continueNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.ContinueNode continueNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  continueNode  Lcom/oracle/js/parser/ir/ContinueNode;
    MethodParameters:
              Name  Flags
      continueNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterIfNode(com.oracle.js.parser.ir.IfNode);
    descriptor: (Lcom/oracle/js/parser/ir/IfNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IfNode ifNode
         0: .line 1932
            aload 0 /* this */
            aload 1 /* ifNode */
            invokevirtual com.oracle.js.parser.ir.IfNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* test */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode test
         1: .line 1933
            aload 0 /* this */
            aload 1 /* ifNode */
            invokevirtual com.oracle.js.parser.ir.IfNode.getPass:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* pass */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode pass
         2: .line 1934
            aload 0 /* this */
            aload 1 /* ifNode */
            invokevirtual com.oracle.js.parser.ir.IfNode.getFail:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* fail */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode fail
         3: .line 1935
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* test */
            aload 3 /* pass */
            aload 4 /* fail */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/IfNode;
            aload 1 /* ifNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode fail
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode pass
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 1 // com.oracle.js.parser.ir.IfNode ifNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  ifNode  Lcom/oracle/js/parser/ir/IfNode;
            1    4     2    test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    4     3    pass  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    4     4    fail  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
        Name  Flags
      ifNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterTernaryNode(com.oracle.js.parser.ir.TernaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/TernaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.TernaryNode ternaryNode
         0: .line 1940
            aload 0 /* this */
            aload 1 /* ternaryNode */
            invokevirtual com.oracle.js.parser.ir.TernaryNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* test */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode test
         1: .line 1941
            aload 0 /* this */
            aload 1 /* ternaryNode */
            invokevirtual com.oracle.js.parser.ir.TernaryNode.getTrueExpression:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* pass */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode pass
         2: .line 1942
            aload 0 /* this */
            aload 1 /* ternaryNode */
            invokevirtual com.oracle.js.parser.ir.TernaryNode.getFalseExpression:()Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* fail */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode fail
         3: .line 1943
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* test */
            aload 3 /* pass */
            aload 4 /* fail */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/IfNode;
            aload 1 /* ternaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode fail
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode pass
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 1 // com.oracle.js.parser.ir.TernaryNode ternaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  ternaryNode  Lcom/oracle/js/parser/ir/TernaryNode;
            1    4     2         test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    4     3         pass  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    4     4         fail  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
             Name  Flags
      ternaryNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterUnaryNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 1948
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:()[I
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iaload
            lookupswitch { // 17
                    6: 1
                   21: 1
                   22: 3
                   25: 1
                   26: 3
                   58: 1
                   65: 9
                   74: 5
                   93: 4
                  109: 2
                  111: 1
                  114: 8
                  137: 3
                  138: 3
                  139: 6
                  140: 7
                  142: 8
              default: 10
          }
         1: .line 1954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterUnaryDefaultNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 1956
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterTypeofNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 1961
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterUnaryIncDecNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         4: .line 1963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterNewNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         5: .line 1965
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterDelete:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         6: .line 1967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createSpreadArgument:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         7: .line 1969
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createSpreadArray:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         8: .line 1972
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createYieldNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         9: .line 1974
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.translateAwaitNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        10: .line 1976
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   11     1  unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode translateAwaitNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 1981
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* expression */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         1: .line 1982
            aload 0 /* this */
            aload 2 /* expression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createAwaitNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1   unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            1    2     2  expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createAwaitNode(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         0: .line 1986
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         1: .line 1987
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addAwait:()V
         2: .line 1988
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getAsyncContextSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 3 /* asyncContextNode */
        start local 3 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncContextNode
         3: .line 1989
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getAsyncResultSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 4 /* asyncResultNode */
        start local 4 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncResultNode
         4: .line 1990
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* expression */
            aload 3 /* asyncContextNode */
            aload 4 /* asyncResultNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAwait:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncResultNode
        end local 3 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncContextNode
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1        expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    5     2   currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            3    5     3  asyncContextNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
            4    5     4   asyncResultNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
    MethodParameters:
            Name  Flags
      expression  

  private com.oracle.truffle.js.nodes.JavaScriptNode createYieldNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=10, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 1994
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         1: .line 1995
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGeneratorFunction:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1996
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isModule:()Z
            ifeq 5
         3: .line 1997
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addYield:()V
         4: .line 1998
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createModuleYield:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         5: .line 2001
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isAsyncFunction:()Z
            istore 3 /* asyncGeneratorYield */
        start local 3 // boolean asyncGeneratorYield
         6: .line 2002
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.YIELD_STAR:Lcom/oracle/js/parser/TokenType;
            if_acmpne 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* yieldStar */
        start local 4 // boolean yieldStar
         9: .line 2004
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* expression */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        10: .line 2005
            aload 0 /* this */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createReturnNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/ReturnNode;
            astore 6 /* returnNode */
        start local 6 // com.oracle.truffle.js.nodes.control.ReturnNode returnNode
        11: .line 2006
            iload 3 /* asyncGeneratorYield */
            ifeq 19
        12: .line 2007
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addAwait:()V
        13: .line 2008
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getAsyncContextSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 7 /* asyncContextNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncContextNode
        14: .line 2009
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getAsyncResultSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            astore 8 /* asyncResultNode */
        start local 8 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncResultNode
        15: .line 2010
            iload 4 /* yieldStar */
            ifeq 18
        16: .line 2011
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 9 /* tempVar */
        start local 9 // com.oracle.truffle.js.parser.env.Environment$VarRef tempVar
        17: .line 2012
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 5 /* expression */
            aload 7 /* asyncContextNode */
            aload 8 /* asyncResultNode */
            aload 6 /* returnNode */
            aload 9 /* tempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 9 /* tempVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.WriteNode
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAsyncGeneratorYieldStar:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/control/ReturnNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/WriteNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 9 // com.oracle.truffle.js.parser.env.Environment$VarRef tempVar
        18: .line 2014
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.UnaryNode com.oracle.truffle.js.parser.env.FunctionEnvironment int int com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.control.ReturnNode com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 5 /* expression */
            aload 7 /* asyncContextNode */
            aload 8 /* asyncResultNode */
            aload 6 /* returnNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAsyncGeneratorYield:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/js/nodes/control/ReturnNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 8 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncResultNode
        end local 7 // com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode asyncContextNode
        19: .line 2017
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.addYield:()V
        20: .line 2018
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getYieldResultSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findTempVar:(Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 7 /* writeYieldResultNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeYieldResultNode
        21: .line 2020
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 5 /* expression */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findYieldValueVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            iload 4 /* yieldStar */
            aload 6 /* returnNode */
            aload 7 /* writeYieldResultNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createYield:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/nodes/control/ReturnNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeYieldResultNode
        end local 6 // com.oracle.truffle.js.nodes.control.ReturnNode returnNode
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        end local 4 // boolean yieldStar
        end local 3 // boolean asyncGeneratorYield
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   22     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   22     1             unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            1   22     2       currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            6   22     3   asyncGeneratorYield  Z
            9   22     4             yieldStar  Z
           10   22     5            expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   22     6            returnNode  Lcom/oracle/truffle/js/nodes/control/ReturnNode;
           14   19     7      asyncContextNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
           15   19     8       asyncResultNode  Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
           17   18     9               tempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           21   22     7  writeYieldResultNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterUnaryDefaultNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 2025
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.TYPEOF:Lcom/oracle/js/parser/TokenType;
            if_acmpne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2026
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* operand */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode operand
         2: .line 2027
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tokenTypeToUnaryOperation:(Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            aload 2 /* operand */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createUnary:(Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode operand
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            2    3     2    operand  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterTypeofNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 2031
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.TYPEOF:Lcom/oracle/js/parser/TokenType;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2032
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* operand */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode operand
         2: .line 2033
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 10
         3: .line 2034
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.IdentNode
            astore 3 /* identNode */
        start local 3 // com.oracle.js.parser.ir.IdentNode identNode
         4: .line 2035
            aload 3 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 4 /* identNodeName */
        start local 4 // java.lang.String identNodeName
         5: .line 2036
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
            ifeq 8
            aload 4 /* identNodeName */
            ldc "__LINE__"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            aload 4 /* identNodeName */
            ldc "__FILE__"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            aload 4 /* identNodeName */
            ldc "__DIR__"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 2037
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.IdentNode java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 4 /* identNodeName */
            invokestatic com.oracle.truffle.js.nodes.access.GlobalPropertyNode.createPropertyNode:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
            astore 2 /* operand */
         7: .line 2038
            goto 10
      StackMap locals:
      StackMap stack:
         8: aload 3 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isThis:()Z
            ifne 10
            aload 3 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isMetaProperty:()Z
            ifne 10
         9: .line 2040
            aload 0 /* this */
            aload 4 /* identNodeName */
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVarCheckTDZ:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.withRequired:(Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* operand */
        end local 4 // java.lang.String identNodeName
        end local 3 // com.oracle.js.parser.ir.IdentNode identNode
        10: .line 2043
      StackMap locals:
      StackMap stack:
            aload 2 /* operand */
            ifnonnull 13
        11: .line 2044
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* operand */
        12: .line 2045
            goto 14
        13: .line 2046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* operand */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        14: .line 2048
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tokenTypeToUnaryOperation:(Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            aload 2 /* operand */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createUnary:(Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode operand
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   15     1      unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            2   15     2        operand  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   10     3      identNode  Lcom/oracle/js/parser/ir/IdentNode;
            5   10     4  identNodeName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterUnaryIncDecNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 2052
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 15
         1: .line 2053
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.IdentNode
            astore 2 /* identNode */
        start local 2 // com.oracle.js.parser.ir.IdentNode identNode
         2: .line 2054
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 4
            aload 2 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isPropertyName:()Z
            ifne 3
            aload 2 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isThis:()Z
            ifne 3
            aload 2 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isMetaProperty:()Z
            ifne 3
            aload 2 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.isSuper:()Z
            ifeq 4
      StackMap locals: com.oracle.js.parser.ir.IdentNode
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVarCheckTDZ:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* varRef */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
         5: .line 2056
            aload 3 /* varRef */
            instanceof com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef
            ifeq 15
         6: .line 2057
            aload 3 /* varRef */
            checkcast com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef
            astore 4 /* frameVarRef */
        start local 4 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef frameVarRef
         7: .line 2058
            aload 4 /* frameVarRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 5 /* frameSlot */
        start local 5 // com.oracle.truffle.api.frame.FrameSlot frameSlot
         8: .line 2059
            aload 5 /* frameSlot */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.isConst:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ifeq 10
         9: .line 2061
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* frameVarRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 5 /* frameSlot */
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.checkMutableBinding:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        10: .line 2063
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef com.oracle.truffle.api.frame.FrameSlot
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tokenTypeToUnaryOperation:(Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            aload 5 /* frameSlot */
            aload 4 /* frameVarRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.hasTDZCheck:()Z
        11: .line 2064
            aload 4 /* frameVarRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.createScopeFrameNode:()Lcom/oracle/truffle/js/nodes/access/ScopeFrameNode;
            aload 4 /* frameVarRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
        12: .line 2063
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLocalVarInc:(Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;Lcom/oracle/truffle/api/frame/FrameSlot;ZLcom/oracle/truffle/js/nodes/access/ScopeFrameNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        13: .line 2064
            aload 1 /* unaryNode */
        14: .line 2063
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 5 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        end local 4 // com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef frameVarRef
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
        end local 2 // com.oracle.js.parser.ir.IdentNode identNode
        15: .line 2068
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.UnaryNode
      StackMap stack:
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.INCPREFIX:Lcom/oracle/js/parser/TokenType;
            if_acmpeq 16
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.INCPOSTFIX:Lcom/oracle/js/parser/TokenType;
            if_acmpne 17
      StackMap locals:
      StackMap stack:
        16: getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.ADD:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            goto 18
      StackMap locals:
      StackMap stack:
        17: getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.SUBTRACT:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation
        18: astore 2 /* operation */
        start local 2 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation operation
        19: .line 2069
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.INCPOSTFIX:Lcom/oracle/js/parser/TokenType;
            if_acmpeq 20
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.DECPOSTFIX:Lcom/oracle/js/parser/TokenType;
            if_acmpeq 20
            iconst_0
            goto 21
      StackMap locals: com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation
      StackMap stack:
        20: iconst_1
      StackMap locals:
      StackMap stack: int
        21: istore 3 /* isPostfix */
        start local 3 // boolean isPostfix
        22: .line 2070
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* unaryNode */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantNumericUnit:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* operation */
            iload 3 /* isPostfix */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformCompoundAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // boolean isPostfix
        end local 2 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation operation
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   23     1    unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            2   15     2    identNode  Lcom/oracle/js/parser/ir/IdentNode;
            5   15     3       varRef  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            7   15     4  frameVarRef  Lcom/oracle/truffle/js/parser/env/Environment$FrameSlotVarRef;
            8   15     5    frameSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
           19   23     2    operation  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
           22   23     3    isPostfix  Z
    MethodParameters:
           Name  Flags
      unaryNode  

  private static com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation tokenTypeToUnaryOperation(com.oracle.js.parser.TokenType);
    descriptor: (Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.TokenType tokenType
         0: .line 2074
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:()[I
            aload 0 /* tokenType */
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iaload
            lookupswitch { // 12
                    6: 3
                   21: 1
                   22: 9
                   25: 4
                   26: 7
                   58: 2
                   74: 11
                   93: 11
                  109: 5
                  111: 6
                  137: 8
                  138: 10
              default: 11
          }
         1: .line 2076
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.PLUS:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         2: .line 2078
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.BITWISE_COMPLEMENT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         3: .line 2080
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.NOT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         4: .line 2082
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.MINUS:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         5: .line 2084
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.TYPE_OF:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         6: .line 2086
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.VOID:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         7: .line 2088
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.PREFIX_LOCAL_DECREMENT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         8: .line 2090
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.POSTFIX_LOCAL_DECREMENT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
         9: .line 2092
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.PREFIX_LOCAL_INCREMENT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
        10: .line 2094
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation.POSTFIX_LOCAL_INCREMENT:Lcom/oracle/truffle/js/nodes/NodeFactory$UnaryOperation;
            areturn
        11: .line 2098
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            aload 0 /* tokenType */
            invokevirtual com.oracle.js.parser.TokenType.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.js.parser.TokenType tokenType
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0  tokenType  Lcom/oracle/js/parser/TokenType;
    MethodParameters:
           Name  Flags
      tokenType  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterDelete(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 2103
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            astore 2 /* rhs */
        start local 2 // com.oracle.js.parser.ir.Expression rhs
         1: .line 2104
            aload 2 /* rhs */
            instanceof com.oracle.js.parser.ir.AccessNode
            ifne 2
            aload 2 /* rhs */
            instanceof com.oracle.js.parser.ir.IndexNode
            ifeq 3
         2: .line 2105
      StackMap locals: com.oracle.js.parser.ir.Expression
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterDeleteProperty:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 2107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterDeleteIdent:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.js.parser.ir.Expression rhs
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1  unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            1    4     2        rhs  Lcom/oracle/js/parser/ir/Expression;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterDeleteIdent(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 2112
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            astore 2 /* rhs */
        start local 2 // com.oracle.js.parser.ir.Expression rhs
         1: .line 2114
            aload 2 /* rhs */
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 6
         2: .line 2116
            aload 2 /* rhs */
            checkcast com.oracle.js.parser.ir.IdentNode
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 4 /* varName */
        start local 4 // java.lang.String varName
         3: .line 2117
            aload 0 /* this */
            aload 4 /* varName */
            aload 4 /* varName */
            ldc "this"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 5 /* varRef */
        start local 5 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
         4: .line 2118
            aload 5 /* varRef */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createDeleteNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* result */
        end local 5 // com.oracle.truffle.js.parser.env.Environment$VarRef varRef
        end local 4 // java.lang.String varName
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode result
         5: .line 2119
            goto 7
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode result
         6: .line 2121
      StackMap locals: com.oracle.js.parser.ir.Expression
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 2 /* rhs */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantBoolean:(Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* result */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode result
         7: .line 2123
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* result */
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode result
        end local 2 // com.oracle.js.parser.ir.Expression rhs
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    8     1  unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            1    8     2        rhs  Lcom/oracle/js/parser/ir/Expression;
            5    6     3     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            7    8     3     result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    5     4    varName  Ljava/lang/String;
            4    5     5     varRef  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
    MethodParameters:
           Name  Flags
      unaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterDeleteProperty(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode deleteNode
         0: .line 2127
            aload 1 /* deleteNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.BaseNode
            astore 2 /* baseNode */
        start local 2 // com.oracle.js.parser.ir.BaseNode baseNode
         1: .line 2128
            aload 2 /* baseNode */
            invokevirtual com.oracle.js.parser.ir.BaseNode.isSuper:()Z
            ifeq 3
         2: .line 2129
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.runtime.JSErrorType.ReferenceError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            ldc "Unsupported reference to 'super'"
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createThrowError:(Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* deleteNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 2132
      StackMap locals: com.oracle.js.parser.ir.BaseNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* baseNode */
            invokevirtual com.oracle.js.parser.ir.BaseNode.getBase:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* target */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode target
         4: .line 2134
            aload 2 /* baseNode */
            instanceof com.oracle.js.parser.ir.AccessNode
            ifeq 9
         5: .line 2135
            aload 2 /* baseNode */
            checkcast com.oracle.js.parser.ir.AccessNode
            astore 5 /* accessNode */
        start local 5 // com.oracle.js.parser.ir.AccessNode accessNode
         6: .line 2136
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 7
            aload 5 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.isPrivate:()Z
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 2137
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.UnaryNode com.oracle.js.parser.ir.BaseNode com.oracle.truffle.js.nodes.JavaScriptNode top com.oracle.js.parser.ir.AccessNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getProperty:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantString:(Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* key */
        end local 5 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode key
         8: .line 2138
            goto 12
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode key
         9: .line 2139
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.UnaryNode com.oracle.js.parser.ir.BaseNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 10
            aload 2 /* baseNode */
            instanceof com.oracle.js.parser.ir.IndexNode
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 2140
      StackMap locals:
      StackMap stack:
            aload 2 /* baseNode */
            checkcast com.oracle.js.parser.ir.IndexNode
            astore 5 /* indexNode */
        start local 5 // com.oracle.js.parser.ir.IndexNode indexNode
        11: .line 2141
            aload 0 /* this */
            aload 5 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.getIndex:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* key */
        end local 5 // com.oracle.js.parser.ir.IndexNode indexNode
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode key
        12: .line 2144
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 2 /* baseNode */
            invokevirtual com.oracle.js.parser.ir.BaseNode.isOptionalChain:()Z
            ifeq 14
        13: .line 2145
            aload 0 /* this */
            aload 3 /* target */
            aload 2 /* baseNode */
            invokevirtual com.oracle.js.parser.ir.BaseNode.isOptional:()Z
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.filterOptionalChainTarget:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* target */
        14: .line 2147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* target */
            aload 4 /* key */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDeleteProperty:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
            astore 5 /* delete */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode delete
        15: .line 2148
            aload 0 /* this */
            aload 5 /* delete */
            aload 1 /* deleteNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        16: .line 2149
            aload 2 /* baseNode */
            invokevirtual com.oracle.js.parser.ir.BaseNode.isOptionalChain:()Z
            ifeq 18
        17: .line 2150
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* delete */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createOptionalChain:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* delete */
        18: .line 2152
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 5 /* delete */
            areturn
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode delete
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode key
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode target
        end local 2 // com.oracle.js.parser.ir.BaseNode baseNode
        end local 1 // com.oracle.js.parser.ir.UnaryNode deleteNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   19     1  deleteNode  Lcom/oracle/js/parser/ir/UnaryNode;
            1   19     2    baseNode  Lcom/oracle/js/parser/ir/BaseNode;
            4   19     3      target  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8    9     4         key  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           12   19     4         key  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    8     5  accessNode  Lcom/oracle/js/parser/ir/AccessNode;
           11   12     5   indexNode  Lcom/oracle/js/parser/ir/IndexNode;
           15   19     5      delete  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      deleteNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode filterOptionalChainTarget(com.oracle.truffle.js.nodes.JavaScriptNode, boolean);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode target
        start local 2 // boolean optional
         0: .line 2157
            aload 1 /* target */
            instanceof com.oracle.truffle.js.nodes.access.OptionalChainNode
            ifeq 3
         1: .line 2158
            aload 1 /* target */
            checkcast com.oracle.truffle.js.nodes.access.OptionalChainNode
            invokevirtual com.oracle.truffle.js.nodes.access.OptionalChainNode.getAccessNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* innerAccess */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
         2: .line 2159
            goto 7
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
      StackMap locals:
      StackMap stack:
         3: aload 1 /* target */
            instanceof com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode
            ifeq 6
         4: .line 2160
            aload 1 /* target */
            checkcast com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode
            invokevirtual com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode.getDelegateNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* innerAccess */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
         5: .line 2161
            goto 7
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
         6: .line 2162
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            astore 3 /* innerAccess */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
         7: .line 2164
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            iload 2 /* optional */
            ifeq 9
         8: .line 2165
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* innerAccess */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createOptionalChainShortCircuit:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* innerAccess */
         9: .line 2167
      StackMap locals:
      StackMap stack:
            aload 3 /* innerAccess */
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
        end local 2 // boolean optional
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode target
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   10     1       target  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   10     2     optional  Z
            2    3     3  innerAccess  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            5    6     3  innerAccess  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            7   10     3  innerAccess  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
          Name  Flags
      target    
      optional  

  private com.oracle.truffle.js.nodes.JavaScriptNode[] transformArgs(java.util.List<com.oracle.js.parser.ir.Expression>);
    descriptor: (Ljava/util/List;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.util.List argList
         0: .line 2171
            aload 1 /* argList */
            invokeinterface java.util.List.size:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 2172
            iload 2 /* len */
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getFunctionArgumentsLimit:()J
            lcmp
            ifle 3
         2: .line 2173
            ldc "function has too many parameters"
            invokestatic com.oracle.truffle.js.runtime.Errors.createSyntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         3: .line 2175
      StackMap locals: int
      StackMap stack:
            iload 2 /* len */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* args */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         4: .line 2176
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 2177
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode[] int
      StackMap stack:
            aload 3 /* args */
            iload 4 /* i */
            aload 0 /* this */
            aload 1 /* argList */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Node
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
         7: .line 2176
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 6
        end local 4 // int i
         9: .line 2179
            aload 3 /* args */
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 2 // int len
        end local 1 // java.util.List argList
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   10     1  argList  Ljava/util/List<Lcom/oracle/js/parser/ir/Expression;>;
            1   10     2      len  I
            4   10     3     args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            5    9     4        i  I
    Signature: (Ljava/util/List<Lcom/oracle/js/parser/ir/Expression;>;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
         Name  Flags
      argList  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterNewNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
         0: .line 2183
            aload 1 /* unaryNode */
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.CallNode
            astore 2 /* callNode */
        start local 2 // com.oracle.js.parser.ir.CallNode callNode
         1: .line 2184
            aload 0 /* this */
            aload 2 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.getFunction:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* function */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode function
         2: .line 2185
            aload 0 /* this */
            aload 2 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.getArgs:()Ljava/util/List;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformArgs:(Ljava/util/List;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* args */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         3: .line 2186
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* function */
            aload 4 /* args */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createNew:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* call */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode call
         4: .line 2187
            aload 0 /* this */
            aload 5 /* call */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagCall:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* unaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode call
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 2 // com.oracle.js.parser.ir.CallNode callNode
        end local 1 // com.oracle.js.parser.ir.UnaryNode unaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  unaryNode  Lcom/oracle/js/parser/ir/UnaryNode;
            1    5     2   callNode  Lcom/oracle/js/parser/ir/CallNode;
            2    5     3   function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    5     4       args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4    5     5       call  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      unaryNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterCallNode(com.oracle.js.parser.ir.CallNode);
    descriptor: (Lcom/oracle/js/parser/ir/CallNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.CallNode callNode
         0: .line 2192
            aload 0 /* this */
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.getFunction:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* function */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode function
         1: .line 2193
            aload 0 /* this */
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.getArgs:()Ljava/util/List;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformArgs:(Ljava/util/List;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* args */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         2: .line 2194
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.isOptionalChain:()Z
            ifeq 4
         3: .line 2195
            aload 0 /* this */
            aload 2 /* function */
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.isOptional:()Z
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.filterOptionalChainTarget:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* function */
         4: .line 2198
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode[]
      StackMap stack:
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.isEval:()Z
            ifeq 7
            aload 3 /* args */
            arraylength
            iconst_1
            if_icmplt 7
         5: .line 2199
            aload 0 /* this */
            aload 2 /* function */
            aload 3 /* args */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createCallEvalNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* call */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
         6: .line 2200
            goto 17
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
      StackMap locals:
      StackMap stack:
         7: aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.isApplyArguments:()Z
            ifeq 10
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectArgumentsAccess:()Z
            ifeq 10
         8: .line 2201
            aload 0 /* this */
            aload 2 /* function */
            aload 3 /* args */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createCallApplyArgumentsNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* call */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
         9: .line 2202
            goto 17
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
      StackMap locals:
      StackMap stack:
        10: aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.getFunction:()Lcom/oracle/js/parser/ir/Expression;
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 13
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.getFunction:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.IdentNode
            invokevirtual com.oracle.js.parser.ir.IdentNode.isDirectSuper:()Z
            ifeq 13
        11: .line 2203
            aload 0 /* this */
            aload 2 /* function */
            aload 3 /* args */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createCallDirectSuper:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* call */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
        12: .line 2204
            goto 17
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
      StackMap locals:
      StackMap stack:
        13: aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.isImport:()Z
            ifeq 16
        14: .line 2205
            aload 0 /* this */
            aload 3 /* args */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createImportCallNode:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* call */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
        15: .line 2206
            goto 17
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
        16: .line 2207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* function */
            aload 3 /* args */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionCall:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* call */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
        17: .line 2209
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 4 /* call */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagCall:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* callNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        18: .line 2210
            aload 1 /* callNode */
            invokevirtual com.oracle.js.parser.ir.CallNode.isOptionalChain:()Z
            ifeq 20
        19: .line 2211
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 4 /* call */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createOptionalChain:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* call */
        20: .line 2213
      StackMap locals:
      StackMap stack:
            aload 4 /* call */
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode call
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 1 // com.oracle.js.parser.ir.CallNode callNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   21     1  callNode  Lcom/oracle/js/parser/ir/CallNode;
            1   21     2  function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   21     3      args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    7     4      call  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   10     4      call  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           12   13     4      call  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           15   16     4      call  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           17   21     4      call  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
          Name  Flags
      callNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode[] insertNewTargetArg(com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         0: .line 2217
            aload 1 /* args */
            arraylength
            iconst_1
            iadd
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            astore 2 /* result */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] result
         1: .line 2218
            aload 2 /* result */
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findNewTargetVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
         2: .line 2219
            aload 1 /* args */
            iconst_0
            aload 2 /* result */
            iconst_1
            aload 1 /* args */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 2220
            aload 2 /* result */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] result
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1    args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    4     2  result  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      args  

  private com.oracle.truffle.js.nodes.JavaScriptNode initializeThis(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode thisValueNode
         0: .line 2227
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findThisVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 2 /* thisVar */
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef thisVar
         1: .line 2231
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* tempVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef tempVar
         2: .line 2232
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.IDENTICAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            aload 2 /* thisVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* uninitialized */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode uninitialized
         3: .line 2233
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* tempVar */
            aload 1 /* thisValueNode */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 4 /* uninitialized */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         4: .line 2234
            aload 0 /* this */
            aload 2 /* thisVar */
            aload 3 /* tempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.initializeInstanceElements:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         5: .line 2235
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.runtime.JSErrorType.ReferenceError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            ldc "super() called twice"
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createThrowError:(Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         6: .line 2233
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/IfNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode uninitialized
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef tempVar
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef thisVar
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode thisValueNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    7     1  thisValueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    7     2        thisVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            2    7     3        tempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            3    7     4  uninitialized  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
               Name  Flags
      thisValueNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode initializeInstanceElements(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode thisValueNode
         0: .line 2239
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentClass:()Lcom/oracle/js/parser/ir/ClassNode;
            astore 2 /* classNode */
        start local 2 // com.oracle.js.parser.ir.ClassNode classNode
         1: .line 2240
            aload 2 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.hasInstanceFields:()Z
            ifne 3
            aload 2 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.hasPrivateInstanceMethods:()Z
            ifne 3
         2: .line 2241
            aload 1 /* thisValueNode */
            areturn
         3: .line 2244
      StackMap locals: com.oracle.js.parser.ir.ClassNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getThisFunctionLevel:()I
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessCallee:(I)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* constructor */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode constructor
         4: .line 2245
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* thisValueNode */
            aload 3 /* constructor */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createInitializeInstanceElements:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode constructor
        end local 2 // com.oracle.js.parser.ir.ClassNode classNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode thisValueNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  thisValueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    5     2      classNode  Lcom/oracle/js/parser/ir/ClassNode;
            4    5     3    constructor  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
               Name  Flags
      thisValueNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createCallEvalNode(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode function
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         0: .line 2249
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isGlobal:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isStrictMode:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDirectEval:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.isDynamicallyScoped:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 3 /* func */
        start local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment func
         2: goto 5
         3: .line 2251
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 3 /* func */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.setNeedsParentFrame:(Z)V
         4: .line 2250
            aload 3 /* func */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 3 /* func */
      StackMap locals:
      StackMap stack:
         5: aload 3 /* func */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getParentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            ifnonnull 3
        end local 3 // com.oracle.truffle.js.parser.env.FunctionEnvironment func
         6: .line 2253
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* function */
            aload 2 /* args */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createThisNodeUnchecked:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            new com.oracle.truffle.js.parser.DirectEvalContext
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentScope:()Lcom/oracle/js/parser/ir/Scope;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentClass:()Lcom/oracle/js/parser/ir/ClassNode;
            invokespecial com.oracle.truffle.js.parser.DirectEvalContext.<init>:(Lcom/oracle/js/parser/ir/Scope;Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/js/parser/ir/ClassNode;)V
            invokestatic com.oracle.truffle.js.nodes.function.EvalNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/function/EvalNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    7     1  function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    7     2      args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    6     3      func  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
    MethodParameters:
          Name  Flags
      function  
      args      

  private com.oracle.truffle.js.nodes.JavaScriptNode createCallApplyArgumentsNode(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode function
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         0: .line 2257
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* function */
            aload 2 /* args */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionCall:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.JSFunctionCallNode
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createCallApplyArguments:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2      args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
          Name  Flags
      function  
      args      

  private com.oracle.truffle.js.nodes.JavaScriptNode createCallDirectSuper(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode function
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         0: .line 2261
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* function */
            aload 0 /* this */
            aload 2 /* args */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.insertNewTargetArg:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createFunctionCallWithNewTarget:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.initializeThis:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2      args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
          Name  Flags
      function  
      args      

  private com.oracle.truffle.js.nodes.JavaScriptNode createImportCallNode(com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         0: .line 2265
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* args */
            iconst_0
            aaload
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getActiveScriptOrModule:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createImportCall:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1  args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      args  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterBinaryNode(com.oracle.js.parser.ir.BinaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
         0: .line 2271
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:()[I
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iaload
            lookupswitch { // 45
                    7: 3
                    8: 3
                    9: 3
                   10: 2
                   11: 3
                   12: 3
                   13: 2
                   14: 2
                   17: 3
                   18: 2
                   19: 3
                   20: 2
                   21: 3
                   23: 2
                   24: 3
                   25: 3
                   27: 2
                   29: 3
                   30: 2
                   33: 3
                   34: 3
                   35: 2
                   36: 3
                   37: 1
                   38: 3
                   39: 3
                   40: 4
                   41: 3
                   42: 3
                   43: 3
                   44: 2
                   45: 3
                   46: 2
                   50: 3
                   51: 2
                   53: 3
                   54: 2
                   55: 3
                   56: 2
                   60: 3
                   61: 2
                   89: 3
                   90: 3
                  136: 4
                  143: 1
              default: 4
          }
         1: .line 2274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBinaryAssignNode:(Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 2290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBinaryTransformNode:(Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 2317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBinaryExpressionNode:(Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         4: .line 2321
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  binaryNode  Lcom/oracle/js/parser/ir/BinaryNode;
    MethodParameters:
            Name  Flags
      binaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterBinaryExpressionNode(com.oracle.js.parser.ir.BinaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
         0: .line 2326
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getLhs:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* lhs */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode lhs
         1: .line 2327
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getRhs:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* rhs */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
         2: .line 2328
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tokenTypeToBinaryOperation:(Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            aload 2 /* lhs */
            aload 3 /* rhs */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* binaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode lhs
        end local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  binaryNode  Lcom/oracle/js/parser/ir/BinaryNode;
            1    3     2         lhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    3     3         rhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      binaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterBinaryTransformNode(com.oracle.js.parser.ir.BinaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
         0: .line 2332
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getAssignmentSource:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* assignedValue */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
         1: .line 2333
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* binaryNode */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getAssignmentDest:()Lcom/oracle/js/parser/ir/Expression;
            aload 2 /* assignedValue */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tokenTypeToBinaryOperation:(Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformCompoundAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* binaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1     binaryNode  Lcom/oracle/js/parser/ir/BinaryNode;
            1    2     2  assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      binaryNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode enterBinaryAssignNode(com.oracle.js.parser.ir.BinaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
         0: .line 2337
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getAssignmentDest:()Lcom/oracle/js/parser/ir/Expression;
            astore 2 /* assignmentDest */
        start local 2 // com.oracle.js.parser.ir.Expression assignmentDest
         1: .line 2338
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getAssignmentSource:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* assignedValue */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
         2: .line 2339
            aload 0 /* this */
            aload 1 /* binaryNode */
            aload 2 /* assignmentDest */
            aload 3 /* assignedValue */
            aload 1 /* binaryNode */
            getstatic com.oracle.js.parser.TokenType.ASSIGN_INIT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.BinaryNode.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* assignment */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
         3: .line 2340
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 5
            aload 3 /* assignedValue */
            ifnull 4
            aload 3 /* assignedValue */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifne 5
            aload 3 /* assignedValue */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.isInstrumentable:()Z
            ifeq 5
      StackMap locals: com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "ExpressionTag expected but not found for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* assignedValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 2341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* assignment */
            aload 1 /* binaryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode assignment
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 2 // com.oracle.js.parser.ir.Expression assignmentDest
        end local 1 // com.oracle.js.parser.ir.BinaryNode binaryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    6     1      binaryNode  Lcom/oracle/js/parser/ir/BinaryNode;
            1    6     2  assignmentDest  Lcom/oracle/js/parser/ir/Expression;
            2    6     3   assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    6     4      assignment  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      binaryNode  

  private static com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation tokenTypeToBinaryOperation(com.oracle.js.parser.TokenType);
    descriptor: (Lcom/oracle/js/parser/TokenType;)Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.TokenType tokenType
         0: .line 2345
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:()[I
            aload 0 /* tokenType */
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iaload
            tableswitch { // 7 - 90
                    7: 19
                    8: 20
                    9: 6
                   10: 6
                   11: 7
                   12: 21
                   13: 7
                   14: 21
                   15: 27
                   16: 27
                   17: 3
                   18: 3
                   19: 4
                   20: 4
                   21: 1
                   22: 27
                   23: 1
                   24: 26
                   25: 2
                   26: 27
                   27: 2
                   28: 27
                   29: 5
                   30: 5
                   31: 27
                   32: 27
                   33: 18
                   34: 10
                   35: 10
                   36: 17
                   37: 27
                   38: 13
                   39: 14
                   40: 27
                   41: 16
                   42: 15
                   43: 11
                   44: 11
                   45: 12
                   46: 12
                   47: 27
                   48: 27
                   49: 27
                   50: 9
                   51: 9
                   52: 27
                   53: 8
                   54: 8
                   55: 22
                   56: 22
                   57: 27
                   58: 27
                   59: 27
                   60: 23
                   61: 23
                   62: 27
                   63: 27
                   64: 27
                   65: 27
                   66: 27
                   67: 27
                   68: 27
                   69: 27
                   70: 27
                   71: 27
                   72: 27
                   73: 27
                   74: 27
                   75: 27
                   76: 27
                   77: 27
                   78: 27
                   79: 27
                   80: 27
                   81: 27
                   82: 27
                   83: 27
                   84: 27
                   85: 27
                   86: 27
                   87: 27
                   88: 27
                   89: 25
                   90: 24
              default: 27
          }
         1: .line 2348
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.ADD:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         2: .line 2351
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.SUBTRACT:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         3: .line 2354
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.MULTIPLY:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         4: .line 2357
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.EXPONENTIATE:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         5: .line 2360
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.DIVIDE:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         6: .line 2363
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.MODULO:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         7: .line 2366
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.BITWISE_AND:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         8: .line 2369
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.BITWISE_OR:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
         9: .line 2372
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.BITWISE_XOR:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        10: .line 2375
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.BITWISE_LEFT_SHIFT:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        11: .line 2378
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.BITWISE_RIGHT_SHIFT:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        12: .line 2381
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.BITWISE_UNSIGNED_RIGHT_SHIFT:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        13: .line 2383
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.EQUAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        14: .line 2385
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.IDENTICAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        15: .line 2387
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.GREATER_OR_EQUAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        16: .line 2389
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.GREATER:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        17: .line 2391
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.LESS_OR_EQUAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        18: .line 2393
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.LESS:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        19: .line 2395
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.NOT_EQUAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        20: .line 2397
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.NOT_IDENTICAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        21: .line 2400
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.LOGICAL_AND:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        22: .line 2403
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.LOGICAL_OR:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        23: .line 2406
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.NULLISH_COALESCING:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        24: .line 2408
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.INSTANCEOF:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        25: .line 2410
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.IN:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        26: .line 2412
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.DUAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            areturn
        27: .line 2414
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            aload 0 /* tokenType */
            invokevirtual com.oracle.js.parser.TokenType.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.js.parser.TokenType tokenType
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0  tokenType  Lcom/oracle/js/parser/TokenType;
    MethodParameters:
           Name  Flags
      tokenType  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformAssignment(com.oracle.js.parser.ir.Expression, com.oracle.js.parser.ir.Expression, com.oracle.truffle.js.nodes.JavaScriptNode, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Expression assignmentExpression
        start local 2 // com.oracle.js.parser.ir.Expression lhsExpression
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 4 // boolean initializationAssignment
         0: .line 2419
            aload 0 /* this */
            aload 1 /* assignmentExpression */
            aload 2 /* lhsExpression */
            aload 3 /* assignedValue */
            iload 4 /* initializationAssignment */
            aconst_null
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignmentImpl:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // boolean initializationAssignment
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 2 // com.oracle.js.parser.ir.Expression lhsExpression
        end local 1 // com.oracle.js.parser.ir.Expression assignmentExpression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    1     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1      assignmentExpression  Lcom/oracle/js/parser/ir/Expression;
            0    1     2             lhsExpression  Lcom/oracle/js/parser/ir/Expression;
            0    1     3             assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     4  initializationAssignment  Z
    MethodParameters:
                          Name  Flags
      assignmentExpression      
      lhsExpression             
      assignedValue             
      initializationAssignment  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformCompoundAssignment(com.oracle.js.parser.ir.Expression, com.oracle.js.parser.ir.Expression, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation, boolean, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Expression assignmentExpression
        start local 2 // com.oracle.js.parser.ir.Expression lhsExpression
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 4 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        start local 5 // boolean returnOldValue
        start local 6 // boolean convertLHSToNumeric
         0: .line 2424
            aload 0 /* this */
            aload 1 /* assignmentExpression */
            aload 2 /* lhsExpression */
            aload 3 /* assignedValue */
            iconst_0
            aload 4 /* binaryOp */
            iload 5 /* returnOldValue */
            iload 6 /* convertLHSToNumeric */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignmentImpl:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 6 // boolean convertLHSToNumeric
        end local 5 // boolean returnOldValue
        end local 4 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 2 // com.oracle.js.parser.ir.Expression lhsExpression
        end local 1 // com.oracle.js.parser.ir.Expression assignmentExpression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  assignmentExpression  Lcom/oracle/js/parser/ir/Expression;
            0    1     2         lhsExpression  Lcom/oracle/js/parser/ir/Expression;
            0    1     3         assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     4              binaryOp  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            0    1     5        returnOldValue  Z
            0    1     6   convertLHSToNumeric  Z
    MethodParameters:
                      Name  Flags
      assignmentExpression  
      lhsExpression         
      assignedValue         
      binaryOp              
      returnOldValue        
      convertLHSToNumeric   

  private com.oracle.truffle.js.nodes.JavaScriptNode transformAssignmentImpl(com.oracle.js.parser.ir.Expression, com.oracle.js.parser.ir.Expression, com.oracle.truffle.js.nodes.JavaScriptNode, boolean, com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation, boolean, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=8
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Expression assignmentExpression
        start local 2 // com.oracle.js.parser.ir.Expression lhsExpression
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 4 // boolean initializationAssignment
        start local 5 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        start local 6 // boolean returnOldValue
        start local 7 // boolean convertLHSToNumeric
         0: .line 2430
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:()[I
            aload 2 /* lhsExpression */
            invokevirtual com.oracle.js.parser.ir.Expression.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iaload
            lookupswitch { // 5
                   28: 7
                   48: 5
                   52: 12
                  126: 3
                  130: 9
              default: 1
          }
         1: .line 2434
      StackMap locals:
      StackMap stack:
            aload 2 /* lhsExpression */
            instanceof com.oracle.js.parser.ir.IdentNode
            ifne 3
         2: .line 2435
            new java.lang.StringBuilder
            dup
            ldc "unsupported assignment to token type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* lhsExpression */
            invokevirtual com.oracle.js.parser.ir.Expression.tokenType:()Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* lhsExpression */
            invokevirtual com.oracle.js.parser.ir.Expression.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.Errors.unsupported:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 2439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lhsExpression */
            checkcast com.oracle.js.parser.ir.IdentNode
            aload 3 /* assignedValue */
            aload 5 /* binaryOp */
            iload 6 /* returnOldValue */
            iload 7 /* convertLHSToNumeric */
            iload 4 /* initializationAssignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignmentIdent:(Lcom/oracle/js/parser/ir/IdentNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* assignedNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         4: .line 2440
            goto 14
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         5: .line 2443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lhsExpression */
            checkcast com.oracle.js.parser.ir.IndexNode
            aload 3 /* assignedValue */
            aload 5 /* binaryOp */
            iload 6 /* returnOldValue */
            iload 7 /* convertLHSToNumeric */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformIndexAssignment:(Lcom/oracle/js/parser/ir/IndexNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* assignedNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         6: .line 2444
            goto 14
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         7: .line 2447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lhsExpression */
            checkcast com.oracle.js.parser.ir.AccessNode
            aload 3 /* assignedValue */
            aload 5 /* binaryOp */
            iload 6 /* returnOldValue */
            iload 7 /* convertLHSToNumeric */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformPropertyAssignment:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* assignedNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         8: .line 2448
            goto 14
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         9: .line 2450
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 10
            aload 5 /* binaryOp */
            ifnull 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 2451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lhsExpression */
            aload 3 /* assignedValue */
            iload 4 /* initializationAssignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformDestructuringArrayAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* assignedNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        11: .line 2452
            goto 14
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        12: .line 2454
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 13
            aload 5 /* binaryOp */
            ifnull 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 2455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lhsExpression */
            aload 3 /* assignedValue */
            iload 4 /* initializationAssignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformDestructuringObjectAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* assignedNode */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        14: .line 2458
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            iload 6 /* returnOldValue */
            ifeq 16
            aload 8 /* assignedNode */
            instanceof com.oracle.truffle.js.nodes.binary.DualNode
            ifeq 16
        15: .line 2459
            aload 0 /* this */
            aload 8 /* assignedNode */
            checkcast com.oracle.truffle.js.nodes.binary.DualNode
            invokevirtual com.oracle.truffle.js.nodes.binary.DualNode.getLeft:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* assignmentExpression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        16: .line 2461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* assignedNode */
            aload 1 /* assignmentExpression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        end local 7 // boolean convertLHSToNumeric
        end local 6 // boolean returnOldValue
        end local 5 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        end local 4 // boolean initializationAssignment
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 2 // com.oracle.js.parser.ir.Expression lhsExpression
        end local 1 // com.oracle.js.parser.ir.Expression assignmentExpression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   17     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   17     1      assignmentExpression  Lcom/oracle/js/parser/ir/Expression;
            0   17     2             lhsExpression  Lcom/oracle/js/parser/ir/Expression;
            0   17     3             assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   17     4  initializationAssignment  Z
            0   17     5                  binaryOp  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            0   17     6            returnOldValue  Z
            0   17     7       convertLHSToNumeric  Z
            4    5     8              assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    7     8              assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8    9     8              assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   12     8              assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           14   17     8              assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                          Name  Flags
      assignmentExpression      
      lhsExpression             
      assignedValue             
      initializationAssignment  
      binaryOp                  
      returnOldValue            
      convertLHSToNumeric       

  private static boolean isLogicalOp(com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation);
    descriptor: (Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation op
         0: .line 2465
            aload 0 /* op */
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.LOGICAL_AND:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            if_acmpeq 1
            aload 0 /* op */
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.LOGICAL_OR:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            if_acmpeq 1
            aload 0 /* op */
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.NULLISH_COALESCING:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            if_acmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation op
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    op  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
    MethodParameters:
      Name  Flags
      op    

  private com.oracle.truffle.js.nodes.JavaScriptNode transformAssignmentIdent(com.oracle.js.parser.ir.IdentNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation, boolean, boolean, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/IdentNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=7
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IdentNode identNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 3 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        start local 4 // boolean returnOldValue
        start local 5 // boolean convertLHSToNumeric
        start local 6 // boolean initializationAssignment
         0: .line 2470
            aload 2 /* assignedValue */
            astore 7 /* rhs */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
         1: .line 2471
            aload 1 /* identNode */
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 8 /* ident */
        start local 8 // java.lang.String ident
         2: .line 2472
            aload 0 /* this */
            aload 8 /* ident */
            iload 6 /* initializationAssignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVarCheckTDZ:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 9 /* scopeVar */
        start local 9 // com.oracle.truffle.js.parser.env.Environment$VarRef scopeVar
         3: .line 2476
            iload 6 /* initializationAssignment */
            ifne 7
            aload 9 /* scopeVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.isConst:()Z
            ifeq 7
         4: .line 2477
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isV8LegacyConst:()Z
            ifeq 6
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            ifne 6
         5: .line 2479
            aload 7 /* rhs */
            areturn
         6: .line 2481
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode java.lang.String com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack:
            aload 0 /* this */
            aload 7 /* rhs */
            aload 9 /* scopeVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.checkMutableBinding:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* rhs */
         7: .line 2484
      StackMap locals:
      StackMap stack:
            aload 3 /* binaryOp */
            ifnonnull 9
         8: .line 2485
            aload 9 /* scopeVar */
            aload 7 /* rhs */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         9: .line 2487
      StackMap locals:
      StackMap stack:
            aload 3 /* binaryOp */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isLogicalOp:(Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;)Z
            ifeq 15
        10: .line 2488
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 12
            iload 5 /* convertLHSToNumeric */
            ifne 11
            iload 4 /* returnOldValue */
            ifeq 12
      StackMap locals:
      StackMap stack:
        11: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 2489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* scopeVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* identNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 10 /* readNode */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        13: .line 2490
            aload 9 /* scopeVar */
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* writeNode */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        14: .line 2491
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* binaryOp */
            aload 10 /* readNode */
            aload 11 /* writeNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        15: .line 2497
      StackMap locals:
      StackMap stack:
            aload 9 /* scopeVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createCompoundAssignNode:()Lcom/oracle/truffle/js/runtime/util/Pair;
            astore 10 /* pair */
        start local 10 // com.oracle.truffle.js.runtime.util.Pair pair
        16: .line 2498
            aload 0 /* this */
            aload 10 /* pair */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getFirst:()Ljava/lang/Object;
            checkcast java.util.function.Supplier
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            aload 1 /* identNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readNode */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        17: .line 2499
            iload 5 /* convertLHSToNumeric */
            ifeq 19
        18: .line 2500
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 11 /* readNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createToNumeric:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readNode */
        19: .line 2502
      StackMap locals: com.oracle.truffle.js.runtime.util.Pair com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aconst_null
            astore 12 /* prevValueTemp */
        start local 12 // com.oracle.truffle.js.parser.env.Environment$VarRef prevValueTemp
        20: .line 2503
            iload 4 /* returnOldValue */
            ifeq 23
        21: .line 2504
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 12 /* prevValueTemp */
        22: .line 2505
            aload 12 /* prevValueTemp */
            aload 11 /* readNode */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readNode */
        23: .line 2507
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* binaryOp */
            aload 11 /* readNode */
            aload 7 /* rhs */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* identNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* binOpNode */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode binOpNode
        24: .line 2508
            aload 10 /* pair */
            invokevirtual com.oracle.truffle.js.runtime.util.Pair.getSecond:()Ljava/lang/Object;
            checkcast java.util.function.UnaryOperator
            aload 13 /* binOpNode */
            invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            astore 14 /* writeNode */
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        25: .line 2509
            iload 4 /* returnOldValue */
            ifeq 27
        26: .line 2510
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 14 /* writeNode */
            aload 12 /* prevValueTemp */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        27: .line 2512
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 14 /* writeNode */
            areturn
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode binOpNode
        end local 12 // com.oracle.truffle.js.parser.env.Environment$VarRef prevValueTemp
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        end local 10 // com.oracle.truffle.js.runtime.util.Pair pair
        end local 9 // com.oracle.truffle.js.parser.env.Environment$VarRef scopeVar
        end local 8 // java.lang.String ident
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
        end local 6 // boolean initializationAssignment
        end local 5 // boolean convertLHSToNumeric
        end local 4 // boolean returnOldValue
        end local 3 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 1 // com.oracle.js.parser.ir.IdentNode identNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   28     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   28     1                 identNode  Lcom/oracle/js/parser/ir/IdentNode;
            0   28     2             assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   28     3                  binaryOp  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            0   28     4            returnOldValue  Z
            0   28     5       convertLHSToNumeric  Z
            0   28     6  initializationAssignment  Z
            1   28     7                       rhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   28     8                     ident  Ljava/lang/String;
            3   28     9                  scopeVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           13   15    10                  readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           14   15    11                 writeNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           16   28    10                      pair  Lcom/oracle/truffle/js/runtime/util/Pair<Ljava/util/function/Supplier<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;Ljava/util/function/UnaryOperator<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;>;
           17   28    11                  readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           20   28    12             prevValueTemp  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           24   28    13                 binOpNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           25   28    14                 writeNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                          Name  Flags
      identNode                 
      assignedValue             
      binaryOp                  
      returnOldValue            
      convertLHSToNumeric       
      initializationAssignment  

  private com.oracle.truffle.js.nodes.JavaScriptNode checkMutableBinding(com.oracle.truffle.js.nodes.JavaScriptNode, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        start local 2 // java.lang.Object identifier
         0: .line 2522
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isV8LegacyConst:()Z
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            ifne 2
         1: .line 2523
            aload 1 /* rhsNode */
            areturn
         2: .line 2526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionV8CompatibilityMode:()Z
            ifeq 3
            ldc "Assignment to constant variable."
            goto 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.StringBuilder
            dup
            ldc "Assignment to constant \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* identifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 3 /* message */
        start local 3 // java.lang.String message
         5: .line 2527
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.runtime.JSErrorType.TypeError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 3 /* message */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createThrowError:(Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* throwTypeError */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode throwTypeError
         6: .line 2528
            aload 1 /* rhsNode */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isPotentiallySideEffecting:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
            ifeq 7
            aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 1 /* rhsNode */
            aastore
            dup
            iconst_1
            aload 4 /* throwTypeError */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 8
      StackMap locals: java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         7: aload 4 /* throwTypeError */
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         8: areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode throwTypeError
        end local 3 // java.lang.String message
        end local 2 // java.lang.Object identifier
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    9     1         rhsNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    9     2      identifier  Ljava/lang/Object;
            5    9     3         message  Ljava/lang/String;
            6    9     4  throwTypeError  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      rhsNode     
      identifier  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformPropertyAssignment(com.oracle.js.parser.ir.AccessNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation, boolean, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 3 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        start local 4 // boolean returnOldValue
        start local 5 // boolean convertToNumeric
         0: .line 2533
            aload 0 /* this */
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getBase:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode target
         1: .line 2535
            aload 3 /* binaryOp */
            ifnonnull 4
         2: .line 2536
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 7 /* target */
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createWriteProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* assignedNode */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         3: .line 2537
            goto 31
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         4: .line 2540
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.AccessNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation int int top com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 7 /* target */
            instanceof com.oracle.truffle.js.nodes.RepeatableNode
            ifeq 8
         5: .line 2541
            aload 7 /* target */
            astore 8 /* target1 */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode target1
         6: .line 2542
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.copy:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* target2 */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode target2
         7: .line 2543
            goto 11
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode target1
         8: .line 2544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 10 /* targetTemp */
        start local 10 // com.oracle.truffle.js.parser.env.Environment$VarRef targetTemp
         9: .line 2545
            aload 10 /* targetTemp */
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* target1 */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode target1
        10: .line 2546
            aload 10 /* targetTemp */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* target2 */
        end local 10 // com.oracle.truffle.js.parser.env.Environment$VarRef targetTemp
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        11: .line 2548
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* binaryOp */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isLogicalOp:(Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;)Z
            ifeq 18
        12: .line 2549
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 14
            iload 5 /* convertToNumeric */
            ifne 13
            iload 4 /* returnOldValue */
            ifeq 14
      StackMap locals:
      StackMap stack:
        13: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 2550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 8 /* target1 */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createReadProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* accessNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 10 /* readNode */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        15: .line 2551
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 9 /* target2 */
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createWriteProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* writeNode */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        16: .line 2552
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* binaryOp */
            aload 10 /* readNode */
            aload 11 /* writeNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* assignedNode */
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        17: .line 2553
            goto 31
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        18: .line 2554
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* prevValueTemp */
        start local 10 // com.oracle.truffle.js.parser.env.Environment$VarRef prevValueTemp
        19: .line 2555
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 9 /* target2 */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createReadProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* accessNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readNode */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        20: .line 2556
            iload 5 /* convertToNumeric */
            ifeq 22
        21: .line 2557
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 11 /* readNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createToNumeric:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readNode */
        22: .line 2559
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            iload 4 /* returnOldValue */
            ifeq 25
        23: .line 2560
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 10 /* prevValueTemp */
        24: .line 2561
            aload 10 /* prevValueTemp */
            aload 11 /* readNode */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readNode */
        25: .line 2563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* binaryOp */
            aload 11 /* readNode */
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* accessNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* binOpNode */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode binOpNode
        26: .line 2564
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 8 /* target1 */
            aload 12 /* binOpNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createWriteProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* writeNode */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        27: .line 2565
            iload 4 /* returnOldValue */
            ifeq 30
        28: .line 2566
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 13 /* writeNode */
            aload 10 /* prevValueTemp */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* assignedNode */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        29: .line 2567
            goto 31
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        30: .line 2568
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 13 /* writeNode */
            astore 6 /* assignedNode */
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode binOpNode
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        end local 10 // com.oracle.truffle.js.parser.env.Environment$VarRef prevValueTemp
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode target1
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        31: .line 2572
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.AccessNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation int int com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 6 /* assignedNode */
            areturn
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode target
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        end local 5 // boolean convertToNumeric
        end local 4 // boolean returnOldValue
        end local 3 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   32     1        accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            0   32     2     assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   32     3          binaryOp  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            0   32     4    returnOldValue  Z
            0   32     5  convertToNumeric  Z
            3    4     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           17   18     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           29   30     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           31   32     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1   32     7            target  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    8     8           target1  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           10   31     8           target1  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            7    8     9           target2  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   31     9           target2  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   11    10        targetTemp  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           15   17    10          readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           16   17    11         writeNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           19   31    10     prevValueTemp  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           20   31    11          readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           26   31    12         binOpNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           27   31    13         writeNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      accessNode        
      assignedValue     
      binaryOp          
      returnOldValue    
      convertToNumeric  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformIndexAssignment(com.oracle.js.parser.ir.IndexNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation, boolean, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/IndexNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;ZZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=18, args_size=6
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IndexNode indexNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 3 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        start local 4 // boolean returnOldValue
        start local 5 // boolean convertToNumeric
         0: .line 2577
            aload 0 /* this */
            aload 1 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.getBase:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode target
         1: .line 2578
            aload 0 /* this */
            aload 1 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.getIndex:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* elem */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode elem
         2: .line 2580
            aload 3 /* binaryOp */
            ifnonnull 5
         3: .line 2581
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 7 /* target */
            aload 8 /* elem */
            aload 2 /* assignedValue */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWriteElementNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            astore 6 /* assignedNode */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         4: .line 2582
            goto 35
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
         5: .line 2593
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.IndexNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation int int top com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 9 /* keyTemp */
        start local 9 // com.oracle.truffle.js.parser.env.Environment$VarRef keyTemp
         6: .line 2594
            aload 9 /* keyTemp */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 10 /* readIndex */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode readIndex
         7: .line 2595
            aload 9 /* keyTemp */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 11 /* writeIndex */
        start local 11 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeIndex
         8: .line 2599
            aload 7 /* target */
            instanceof com.oracle.truffle.js.nodes.RepeatableNode
            ifeq 12
         9: .line 2600
            aload 7 /* target */
            astore 12 /* target1 */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode target1
        10: .line 2601
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.copy:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* target2 */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        11: .line 2602
            goto 15
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode target1
        12: .line 2603
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 14 /* targetTemp */
        start local 14 // com.oracle.truffle.js.parser.env.Environment$VarRef targetTemp
        13: .line 2604
            aload 14 /* targetTemp */
            aload 7 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* target1 */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode target1
        14: .line 2605
            aload 14 /* targetTemp */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* target2 */
        end local 14 // com.oracle.truffle.js.parser.env.Environment$VarRef targetTemp
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        15: .line 2608
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* binaryOp */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isLogicalOp:(Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;)Z
            ifeq 22
        16: .line 2609
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 18
            iload 5 /* convertToNumeric */
            ifne 17
            iload 4 /* returnOldValue */
            ifeq 18
      StackMap locals:
      StackMap stack:
        17: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 2610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 12 /* target1 */
            aload 9 /* keyTemp */
            aload 8 /* elem */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadElementNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            aload 1 /* indexNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* readNode */
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        19: .line 2611
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 13 /* target2 */
            aload 10 /* readIndex */
            aload 2 /* assignedValue */
            aconst_null
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createCompoundWriteElementNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            astore 15 /* writeNode */
        start local 15 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        20: .line 2612
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* binaryOp */
            aload 14 /* readNode */
            aload 15 /* writeNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* assignedNode */
        end local 15 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        21: .line 2613
            goto 35
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        22: .line 2614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 13 /* target2 */
            aload 10 /* readIndex */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadElementNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            aload 1 /* indexNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* readNode */
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        23: .line 2615
            iload 5 /* convertToNumeric */
            ifeq 25
        24: .line 2616
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 14 /* readNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createToNumeric:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* readNode */
        25: .line 2618
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aconst_null
            astore 15 /* prevValueTemp */
        start local 15 // com.oracle.truffle.js.parser.env.Environment$VarRef prevValueTemp
        26: .line 2619
            iload 4 /* returnOldValue */
            ifeq 29
        27: .line 2620
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 15 /* prevValueTemp */
        28: .line 2621
            aload 15 /* prevValueTemp */
            aload 14 /* readNode */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* readNode */
        29: .line 2623
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* binaryOp */
            aload 14 /* readNode */
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* indexNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 16 /* binOpNode */
        start local 16 // com.oracle.truffle.js.nodes.JavaScriptNode binOpNode
        30: .line 2624
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 12 /* target1 */
            aload 8 /* elem */
            aload 16 /* binOpNode */
            aload 11 /* writeIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createCompoundWriteElementNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            astore 17 /* writeNode */
        start local 17 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        31: .line 2625
            iload 4 /* returnOldValue */
            ifeq 34
        32: .line 2626
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 17 /* writeNode */
            aload 15 /* prevValueTemp */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* assignedNode */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        33: .line 2627
            goto 35
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        34: .line 2628
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 17 /* writeNode */
            astore 6 /* assignedNode */
        end local 17 // com.oracle.truffle.js.nodes.JavaScriptNode writeNode
        end local 16 // com.oracle.truffle.js.nodes.JavaScriptNode binOpNode
        end local 15 // com.oracle.truffle.js.parser.env.Environment$VarRef prevValueTemp
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode readNode
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode target2
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode target1
        end local 11 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeIndex
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode readIndex
        end local 9 // com.oracle.truffle.js.parser.env.Environment$VarRef keyTemp
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        35: .line 2632
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.IndexNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation int int com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 6 /* assignedNode */
            areturn
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode elem
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode target
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode assignedNode
        end local 5 // boolean convertToNumeric
        end local 4 // boolean returnOldValue
        end local 3 // com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation binaryOp
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 1 // com.oracle.js.parser.ir.IndexNode indexNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   36     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   36     1         indexNode  Lcom/oracle/js/parser/ir/IndexNode;
            0   36     2     assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   36     3          binaryOp  Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            0   36     4    returnOldValue  Z
            0   36     5  convertToNumeric  Z
            4    5     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           21   22     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           33   34     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           35   36     6      assignedNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1   36     7            target  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   36     8              elem  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6   35     9           keyTemp  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            7   35    10         readIndex  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8   35    11        writeIndex  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
           10   12    12           target1  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           14   35    12           target1  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   12    13           target2  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           15   35    13           target2  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           13   15    14        targetTemp  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           19   21    14          readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           20   21    15         writeNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           23   35    14          readNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           26   35    15     prevValueTemp  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           30   35    16         binOpNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           31   35    17         writeNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      indexNode         
      assignedValue     
      binaryOp          
      returnOldValue    
      convertToNumeric  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformDestructuringArrayAssignment(com.oracle.js.parser.ir.Expression, com.oracle.truffle.js.nodes.JavaScriptNode, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=17, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Expression lhsExpression
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 3 // boolean initializationAssignment
         0: .line 2636
            aload 1 /* lhsExpression */
            checkcast com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode
            astore 4 /* arrayLiteralNode */
        start local 4 // com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode arrayLiteralNode
         1: .line 2637
            aload 4 /* arrayLiteralNode */
            invokevirtual com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode.getElementExpressions:()Ljava/util/List;
            astore 5 /* elementExpressions */
        start local 5 // java.util.List elementExpressions
         2: .line 2638
            aload 5 /* elementExpressions */
            invokeinterface java.util.List.size:()I
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* initElements */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode[] initElements
         3: .line 2639
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 7 /* iteratorTempVar */
        start local 7 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorTempVar
         4: .line 2640
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 8 /* valueTempVar */
        start local 8 // com.oracle.truffle.js.parser.env.Environment$VarRef valueTempVar
         5: .line 2641
            aload 8 /* valueTempVar */
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* initValue */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode initValue
         6: .line 2643
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 9 /* initValue */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetIterator:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 10 /* getIterator */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode getIterator
         7: .line 2644
            aload 7 /* iteratorTempVar */
            aload 10 /* getIterator */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* initIteratorTempVar */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode initIteratorTempVar
         8: .line 2646
            iconst_0
            istore 12 /* i */
        start local 12 // int i
         9: goto 32
        10: .line 2647
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode int
      StackMap stack:
            aload 5 /* elementExpressions */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Expression
            astore 13 /* element */
        start local 13 // com.oracle.js.parser.ir.Expression element
        11: .line 2649
            aconst_null
            astore 15 /* init */
        start local 15 // com.oracle.js.parser.ir.Expression init
        12: .line 2650
            aload 13 /* element */
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 15
        13: .line 2651
            aload 13 /* element */
            astore 14 /* lhsExpr */
        start local 14 // com.oracle.js.parser.ir.Expression lhsExpr
        14: .line 2652
            goto 21
        end local 14 // com.oracle.js.parser.ir.Expression lhsExpr
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.Expression top com.oracle.js.parser.ir.Expression
      StackMap stack:
        15: aload 13 /* element */
            instanceof com.oracle.js.parser.ir.BinaryNode
            ifeq 20
        16: .line 2653
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 17
            aload 13 /* element */
            getstatic com.oracle.js.parser.TokenType.ASSIGN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            ifne 17
            aload 13 /* element */
            getstatic com.oracle.js.parser.TokenType.ASSIGN_INIT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 2654
      StackMap locals:
      StackMap stack:
            aload 13 /* element */
            checkcast com.oracle.js.parser.ir.BinaryNode
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getLhs:()Lcom/oracle/js/parser/ir/Expression;
            astore 14 /* lhsExpr */
        start local 14 // com.oracle.js.parser.ir.Expression lhsExpr
        18: .line 2655
            aload 13 /* element */
            checkcast com.oracle.js.parser.ir.BinaryNode
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getRhs:()Lcom/oracle/js/parser/ir/Expression;
            astore 15 /* init */
        19: .line 2656
            goto 21
        end local 14 // com.oracle.js.parser.ir.Expression lhsExpr
        20: .line 2657
      StackMap locals:
      StackMap stack:
            aload 13 /* element */
            astore 14 /* lhsExpr */
        start local 14 // com.oracle.js.parser.ir.Expression lhsExpr
        21: .line 2659
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 7 /* iteratorTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorGetNextValue:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 16 /* rhsNode */
        start local 16 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        22: .line 2660
            aload 15 /* init */
            ifnull 24
        23: .line 2661
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 16 /* rhsNode */
            aload 0 /* this */
            aload 15 /* init */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createNotUndefinedOr:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 16 /* rhsNode */
        24: .line 2663
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 14 /* lhsExpr */
            ifnull 27
            aload 14 /* lhsExpr */
            getstatic com.oracle.js.parser.TokenType.SPREAD_ARRAY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            ifeq 27
        25: .line 2664
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 7 /* iteratorTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorToArray:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/IteratorToArrayNode;
            astore 16 /* rhsNode */
        26: .line 2665
            aload 14 /* lhsExpr */
            checkcast com.oracle.js.parser.ir.UnaryNode
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            astore 14 /* lhsExpr */
        27: .line 2667
      StackMap locals:
      StackMap stack:
            aload 14 /* lhsExpr */
            ifnull 30
        28: .line 2668
            aload 6 /* initElements */
            iload 12 /* i */
            aload 0 /* this */
            aload 14 /* lhsExpr */
            aload 14 /* lhsExpr */
            aload 16 /* rhsNode */
            iload 3 /* initializationAssignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
        29: .line 2669
            goto 31
        30: .line 2670
      StackMap locals:
      StackMap stack:
            aload 6 /* initElements */
            iload 12 /* i */
            aload 16 /* rhsNode */
            aastore
        end local 16 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        end local 15 // com.oracle.js.parser.ir.Expression init
        end local 14 // com.oracle.js.parser.ir.Expression lhsExpr
        end local 13 // com.oracle.js.parser.ir.Expression element
        31: .line 2646
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode java.util.List com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode int
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 12 /* i */
            aload 5 /* elementExpressions */
            invokeinterface java.util.List.size:()I
            if_icmplt 10
        end local 12 // int i
        33: .line 2673
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 6 /* initElements */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 7 /* iteratorTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIteratorCloseIfNotDone:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* closeIfNotDone */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode closeIfNotDone
        34: .line 2674
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_3
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 11 /* initIteratorTempVar */
            aastore
            dup
            iconst_1
            aload 12 /* closeIfNotDone */
            aastore
            dup
            iconst_2
            aload 8 /* valueTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode closeIfNotDone
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode initIteratorTempVar
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode getIterator
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode initValue
        end local 8 // com.oracle.truffle.js.parser.env.Environment$VarRef valueTempVar
        end local 7 // com.oracle.truffle.js.parser.env.Environment$VarRef iteratorTempVar
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode[] initElements
        end local 5 // java.util.List elementExpressions
        end local 4 // com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode arrayLiteralNode
        end local 3 // boolean initializationAssignment
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 1 // com.oracle.js.parser.ir.Expression lhsExpression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   35     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   35     1             lhsExpression  Lcom/oracle/js/parser/ir/Expression;
            0   35     2             assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   35     3  initializationAssignment  Z
            1   35     4          arrayLiteralNode  Lcom/oracle/js/parser/ir/LiteralNode$ArrayLiteralNode;
            2   35     5        elementExpressions  Ljava/util/List<Lcom/oracle/js/parser/ir/Expression;>;
            3   35     6              initElements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   35     7           iteratorTempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            5   35     8              valueTempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            6   35     9                 initValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            7   35    10               getIterator  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8   35    11       initIteratorTempVar  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   33    12                         i  I
           11   31    13                   element  Lcom/oracle/js/parser/ir/Expression;
           14   15    14                   lhsExpr  Lcom/oracle/js/parser/ir/Expression;
           18   20    14                   lhsExpr  Lcom/oracle/js/parser/ir/Expression;
           21   31    14                   lhsExpr  Lcom/oracle/js/parser/ir/Expression;
           12   31    15                      init  Lcom/oracle/js/parser/ir/Expression;
           22   31    16                   rhsNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           34   35    12            closeIfNotDone  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                          Name  Flags
      lhsExpression             
      assignedValue             
      initializationAssignment  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformDestructuringObjectAssignment(com.oracle.js.parser.ir.Expression, com.oracle.truffle.js.nodes.JavaScriptNode, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=21, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Expression lhsExpression
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        start local 3 // boolean initializationAssignment
         0: .line 2678
            aload 1 /* lhsExpression */
            checkcast com.oracle.js.parser.ir.ObjectNode
            astore 4 /* objectLiteralNode */
        start local 4 // com.oracle.js.parser.ir.ObjectNode objectLiteralNode
         1: .line 2679
            aload 4 /* objectLiteralNode */
            invokevirtual com.oracle.js.parser.ir.ObjectNode.getElements:()Ljava/util/List;
            astore 5 /* propertyExpressions */
        start local 5 // java.util.List propertyExpressions
         2: .line 2680
            aload 5 /* propertyExpressions */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         3: .line 2681
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createRequireObjectCoercible:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         4: .line 2684
      StackMap locals: com.oracle.js.parser.ir.ObjectNode java.util.List
      StackMap stack:
            aload 5 /* propertyExpressions */
            invokeinterface java.util.List.size:()I
            istore 6 /* numberOfProperties */
        start local 6 // int numberOfProperties
         5: .line 2685
            aload 5 /* propertyExpressions */
            iload 6 /* numberOfProperties */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.PropertyNode
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isRest:()Z
            istore 7 /* hasRest */
        start local 7 // boolean hasRest
         6: .line 2686
            iload 7 /* hasRest */
            ifeq 7
            iload 6 /* numberOfProperties */
            iconst_1
            if_icmpne 7
            iconst_1
            goto 8
      StackMap locals: int int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 8 /* requireObjectCoercible */
        start local 8 // boolean requireObjectCoercible
         9: .line 2687
            iload 6 /* numberOfProperties */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* initElements */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode[] initElements
        10: .line 2688
            iload 7 /* hasRest */
            ifeq 11
            iload 6 /* numberOfProperties */
            iconst_1
            isub
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.javaScriptNodeArray:(I)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 12
      StackMap locals: int com.oracle.truffle.js.nodes.JavaScriptNode[]
      StackMap stack:
        11: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[]
        12: astore 10 /* excludedKeys */
        start local 10 // com.oracle.truffle.js.nodes.JavaScriptNode[] excludedKeys
        13: .line 2690
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 11 /* valueTempVar */
        start local 11 // com.oracle.truffle.js.parser.env.Environment$VarRef valueTempVar
        14: .line 2691
            aload 11 /* valueTempVar */
            iload 8 /* requireObjectCoercible */
            ifeq 15
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* assignedValue */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createRequireObjectCoercible:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 16
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack: com.oracle.truffle.js.parser.env.Environment$VarRef
        15: aload 2 /* assignedValue */
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack: com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode
        16: invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* initValueTempVar */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode initValueTempVar
        17: .line 2693
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        18: goto 57
        19: .line 2694
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode int
      StackMap stack:
            aload 5 /* propertyExpressions */
            iload 13 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.PropertyNode
            astore 14 /* property */
        start local 14 // com.oracle.js.parser.ir.PropertyNode property
        20: .line 2696
            aconst_null
            astore 16 /* init */
        start local 16 // com.oracle.js.parser.ir.Expression init
        21: .line 2697
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            instanceof com.oracle.js.parser.ir.BinaryNode
            ifeq 26
        22: .line 2698
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 23
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            getstatic com.oracle.js.parser.TokenType.ASSIGN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            ifne 23
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            getstatic com.oracle.js.parser.TokenType.ASSIGN_INIT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
            ifne 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 2699
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.PropertyNode top com.oracle.js.parser.ir.Expression
      StackMap stack:
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.BinaryNode
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getLhs:()Lcom/oracle/js/parser/ir/Expression;
            astore 15 /* lhsExpr */
        start local 15 // com.oracle.js.parser.ir.Expression lhsExpr
        24: .line 2700
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.BinaryNode
            invokevirtual com.oracle.js.parser.ir.BinaryNode.getRhs:()Lcom/oracle/js/parser/ir/Expression;
            astore 16 /* init */
        25: .line 2701
            goto 31
        end local 15 // com.oracle.js.parser.ir.Expression lhsExpr
      StackMap locals:
      StackMap stack:
        26: aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isRest:()Z
            ifeq 30
        27: .line 2702
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 28
            iload 7 /* hasRest */
            ifne 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 2703
      StackMap locals:
      StackMap stack:
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.UnaryNode
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            astore 15 /* lhsExpr */
        start local 15 // com.oracle.js.parser.ir.Expression lhsExpr
        29: .line 2704
            goto 31
        end local 15 // com.oracle.js.parser.ir.Expression lhsExpr
        30: .line 2705
      StackMap locals:
      StackMap stack:
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            astore 15 /* lhsExpr */
        start local 15 // com.oracle.js.parser.ir.Expression lhsExpr
        31: .line 2708
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.PropertyNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression
      StackMap stack:
            aconst_null
            astore 18 /* toPropertyKey */
        start local 18 // com.oracle.truffle.js.nodes.JavaScriptNode toPropertyKey
        32: .line 2709
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isRest:()Z
            ifeq 38
        33: .line 2710
            aload 10 /* excludedKeys */
            arraylength
            ifne 34
            aconst_null
            goto 35
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.PropertyNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression top com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
        34: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 10 /* excludedKeys */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createArrayLiteral:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        35: astore 19 /* excludedItemsArray */
        start local 19 // com.oracle.truffle.js.nodes.JavaScriptNode excludedItemsArray
        36: .line 2711
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 11 /* valueTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 19 /* excludedItemsArray */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createRestObject:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 17 /* rhsNode */
        end local 19 // com.oracle.truffle.js.nodes.JavaScriptNode excludedItemsArray
        start local 17 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        37: .line 2712
            goto 50
        end local 17 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
      StackMap locals:
      StackMap stack:
        38: aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
            instanceof com.oracle.js.parser.ir.IdentNode
            ifeq 44
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isComputed:()Z
            ifne 44
        39: .line 2713
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKeyName:()Ljava/lang/String;
            astore 19 /* keyName */
        start local 19 // java.lang.String keyName
        40: .line 2714
            iload 7 /* hasRest */
            ifeq 42
        41: .line 2715
            aload 10 /* excludedKeys */
            iload 13 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 19 /* keyName */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantString:(Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
        42: .line 2717
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 11 /* valueTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 19 /* keyName */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
            astore 17 /* rhsNode */
        end local 19 // java.lang.String keyName
        start local 17 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        43: .line 2718
            goto 50
        end local 17 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        44: .line 2719
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 19 /* key */
        start local 19 // com.oracle.truffle.js.nodes.JavaScriptNode key
        45: .line 2720
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createTempVar:()Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 20 /* keyTempVar */
        start local 20 // com.oracle.truffle.js.parser.env.Environment$VarRef keyTempVar
        46: .line 2721
            iload 7 /* hasRest */
            ifeq 48
        47: .line 2722
            aload 10 /* excludedKeys */
            iload 13 /* i */
            aload 20 /* keyTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
        48: .line 2724
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack:
            aload 20 /* keyTempVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 19 /* key */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createToPropertyKey:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 18 /* toPropertyKey */
        49: .line 2725
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 11 /* valueTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 20 /* keyTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadElementNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            astore 17 /* rhsNode */
        end local 20 // com.oracle.truffle.js.parser.env.Environment$VarRef keyTempVar
        end local 19 // com.oracle.truffle.js.nodes.JavaScriptNode key
        start local 17 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        50: .line 2727
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.PropertyNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 16 /* init */
            ifnull 52
        51: .line 2728
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 17 /* rhsNode */
            aload 0 /* this */
            aload 16 /* init */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createNotUndefinedOr:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 17 /* rhsNode */
        52: .line 2730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 15 /* lhsExpr */
            aload 15 /* lhsExpr */
            aload 17 /* rhsNode */
            iload 3 /* initializationAssignment */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 19 /* initElement */
        start local 19 // com.oracle.truffle.js.nodes.JavaScriptNode initElement
        53: .line 2731
            aload 9 /* initElements */
            iload 13 /* i */
            aload 18 /* toPropertyKey */
            ifnonnull 54
            aload 19 /* initElement */
            goto 55
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.PropertyNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[] int
        54: aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 18 /* toPropertyKey */
            aload 19 /* initElement */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDual:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.PropertyNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[] int com.oracle.truffle.js.nodes.JavaScriptNode
        55: aastore
        end local 19 // com.oracle.truffle.js.nodes.JavaScriptNode initElement
        end local 18 // com.oracle.truffle.js.nodes.JavaScriptNode toPropertyKey
        end local 17 // com.oracle.truffle.js.nodes.JavaScriptNode rhsNode
        end local 16 // com.oracle.js.parser.ir.Expression init
        end local 15 // com.oracle.js.parser.ir.Expression lhsExpr
        end local 14 // com.oracle.js.parser.ir.PropertyNode property
        56: .line 2693
            iinc 13 /* i */ 1
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.Expression com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.js.parser.ir.ObjectNode java.util.List int int int com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode int
      StackMap stack:
        57: iload 13 /* i */
            iload 6 /* numberOfProperties */
            if_icmplt 19
        end local 13 // int i
        58: .line 2733
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_3
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 12 /* initValueTempVar */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aload 9 /* initElements */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            dup
            iconst_2
            aload 11 /* valueTempVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createExprBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode initValueTempVar
        end local 11 // com.oracle.truffle.js.parser.env.Environment$VarRef valueTempVar
        end local 10 // com.oracle.truffle.js.nodes.JavaScriptNode[] excludedKeys
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode[] initElements
        end local 8 // boolean requireObjectCoercible
        end local 7 // boolean hasRest
        end local 6 // int numberOfProperties
        end local 5 // java.util.List propertyExpressions
        end local 4 // com.oracle.js.parser.ir.ObjectNode objectLiteralNode
        end local 3 // boolean initializationAssignment
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode assignedValue
        end local 1 // com.oracle.js.parser.ir.Expression lhsExpression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   59     0                      this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   59     1             lhsExpression  Lcom/oracle/js/parser/ir/Expression;
            0   59     2             assignedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   59     3  initializationAssignment  Z
            1   59     4         objectLiteralNode  Lcom/oracle/js/parser/ir/ObjectNode;
            2   59     5       propertyExpressions  Ljava/util/List<Lcom/oracle/js/parser/ir/PropertyNode;>;
            5   59     6        numberOfProperties  I
            6   59     7                   hasRest  Z
            9   59     8    requireObjectCoercible  Z
           10   59     9              initElements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           13   59    10              excludedKeys  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           14   59    11              valueTempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           17   59    12          initValueTempVar  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           18   58    13                         i  I
           20   56    14                  property  Lcom/oracle/js/parser/ir/PropertyNode;
           24   26    15                   lhsExpr  Lcom/oracle/js/parser/ir/Expression;
           29   30    15                   lhsExpr  Lcom/oracle/js/parser/ir/Expression;
           31   56    15                   lhsExpr  Lcom/oracle/js/parser/ir/Expression;
           21   56    16                      init  Lcom/oracle/js/parser/ir/Expression;
           37   38    17                   rhsNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           43   44    17                   rhsNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           50   56    17                   rhsNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           32   56    18             toPropertyKey  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           36   37    19        excludedItemsArray  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           40   43    19                   keyName  Ljava/lang/String;
           45   50    19                       key  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           46   50    20                keyTempVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           53   56    19               initElement  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                          Name  Flags
      lhsExpression             
      assignedValue             
      initializationAssignment  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterAccessNode(com.oracle.js.parser.ir.AccessNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
         0: .line 2738
            aload 0 /* this */
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getBase:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* base */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
         1: .line 2739
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.isOptionalChain:()Z
            ifeq 3
         2: .line 2740
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 2 /* base */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createOptionalAccessNode:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         3: .line 2742
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 2 /* base */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createReadProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* read */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode read
         4: .line 2743
            aload 0 /* this */
            aload 3 /* read */
            aload 1 /* accessNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         5: .line 2744
            aload 3 /* read */
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode read
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    6     1  accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            1    6     2        base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4    6     3        read  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      accessNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createOptionalAccessNode(com.oracle.js.parser.ir.AccessNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
         0: .line 2748
            aload 0 /* this */
            aload 2 /* base */
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.isOptional:()Z
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.filterOptionalChainTarget:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* innerAccess */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
         1: .line 2749
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 3 /* innerAccess */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createReadProperty:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* read */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode read
         2: .line 2750
            aload 0 /* this */
            aload 4 /* read */
            aload 1 /* accessNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         3: .line 2751
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 4 /* read */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createOptionalChain:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode read
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode innerAccess
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    4     1   accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            0    4     2         base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    4     3  innerAccess  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    4     4         read  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      accessNode  
      base        

  private com.oracle.truffle.js.nodes.JavaScriptNode createReadProperty(com.oracle.js.parser.ir.AccessNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
         0: .line 2755
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.isPrivate:()Z
            ifeq 2
         1: .line 2756
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 2 /* base */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createPrivateFieldGet:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 2758
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* base */
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getProperty:()Ljava/lang/String;
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.isFunction:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/String;Z)Lcom/oracle/truffle/js/nodes/access/JSTargetableNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            0    3     2        base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      accessNode  
      base        

  private com.oracle.truffle.js.nodes.JavaScriptNode createWriteProperty(com.oracle.js.parser.ir.AccessNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
         0: .line 2763
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.isPrivate:()Z
            ifeq 2
         1: .line 2764
            aload 0 /* this */
            aload 1 /* accessNode */
            aload 2 /* base */
            aload 3 /* rhs */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createPrivateFieldSet:(Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 2766
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* base */
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getProperty:()Ljava/lang/String;
            aload 3 /* rhs */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.isStrictMode:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWriteProperty:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WritePropertyNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            0    3     2        base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    3     3         rhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      accessNode  
      base        
      rhs         

  private com.oracle.truffle.js.nodes.JavaScriptNode createPrivateFieldGet(com.oracle.js.parser.ir.AccessNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
         0: .line 2771
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getPrivateName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 3 /* privateNameVar */
        start local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef privateNameVar
         1: .line 2772
            aload 3 /* privateNameVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* privateName */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode privateName
         2: .line 2773
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 2 /* base */
            aload 3 /* privateNameVar */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.insertPrivateBrandCheck:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 4 /* privateName */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrivateFieldGet:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode privateName
        end local 3 // com.oracle.truffle.js.parser.env.Environment$VarRef privateNameVar
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1      accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            0    3     2            base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    3     3  privateNameVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            2    3     4     privateName  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      accessNode  
      base        

  private com.oracle.truffle.js.nodes.JavaScriptNode createPrivateFieldSet(com.oracle.js.parser.ir.AccessNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
         0: .line 2777
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 1 /* accessNode */
            invokevirtual com.oracle.js.parser.ir.AccessNode.getPrivateName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 4 /* privateNameVar */
        start local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef privateNameVar
         1: .line 2778
            aload 4 /* privateNameVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* privateName */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode privateName
         2: .line 2779
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 2 /* base */
            aload 4 /* privateNameVar */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.insertPrivateBrandCheck:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 5 /* privateName */
            aload 3 /* rhs */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrivateFieldSet:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode privateName
        end local 4 // com.oracle.truffle.js.parser.env.Environment$VarRef privateNameVar
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.AccessNode accessNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1      accessNode  Lcom/oracle/js/parser/ir/AccessNode;
            0    3     2            base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    3     3             rhs  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    3     4  privateNameVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            2    3     5     privateName  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
            Name  Flags
      accessNode  
      base        
      rhs         

  private com.oracle.truffle.js.nodes.JavaScriptNode insertPrivateBrandCheck(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.parser.env.Environment$VarRef);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode base
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef privateNameVar
         0: .line 2783
            aload 2 /* privateNameVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.getFrameSlot:()Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 3 /* frameSlot */
        start local 3 // com.oracle.truffle.api.frame.FrameSlot frameSlot
         1: .line 2784
            aload 3 /* frameSlot */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.needsPrivateBrandCheck:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ifeq 12
         2: .line 2785
            aload 2 /* privateNameVar */
            checkcast com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef
            invokevirtual com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef.getFrameLevel:()I
            istore 4 /* frameLevel */
        start local 4 // int frameLevel
         3: .line 2786
            aload 2 /* privateNameVar */
            checkcast com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef
            invokevirtual com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef.getScopeLevel:()I
            istore 5 /* scopeLevel */
        start local 5 // int scopeLevel
         4: .line 2787
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            iload 4 /* frameLevel */
            iload 5 /* scopeLevel */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getParentAt:(II)Lcom/oracle/truffle/js/parser/env/Environment;
            astore 6 /* memberEnv */
        start local 6 // com.oracle.truffle.js.parser.env.Environment memberEnv
         5: .line 2788
            aload 6 /* memberEnv */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.getBlockFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            ldc "#constructor"
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 7 /* constructorSlot */
        start local 7 // com.oracle.truffle.api.frame.FrameSlot constructorSlot
         6: .line 2789
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 7 /* constructorSlot */
            iload 4 /* frameLevel */
            iload 5 /* scopeLevel */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.createLocal:(Lcom/oracle/truffle/api/frame/FrameSlot;II)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* constructor */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode constructor
         7: .line 2791
            aload 3 /* frameSlot */
            invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.isPrivateNameStatic:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ifeq 10
         8: .line 2792
            aload 8 /* constructor */
            astore 9 /* brand */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode brand
         9: .line 2793
            goto 11
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode brand
        10: .line 2794
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.api.frame.FrameSlot int int com.oracle.truffle.js.parser.env.Environment com.oracle.truffle.api.frame.FrameSlot com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 8 /* constructor */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createGetPrivateBrand:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* brand */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode brand
        11: .line 2796
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* base */
            aload 9 /* brand */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrivateBrandCheck:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode brand
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode constructor
        end local 7 // com.oracle.truffle.api.frame.FrameSlot constructorSlot
        end local 6 // com.oracle.truffle.js.parser.env.Environment memberEnv
        end local 5 // int scopeLevel
        end local 4 // int frameLevel
        12: .line 2798
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.api.frame.FrameSlot
      StackMap stack:
            aload 1 /* base */
            areturn
        end local 3 // com.oracle.truffle.api.frame.FrameSlot frameSlot
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef privateNameVar
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   13     1             base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   13     2   privateNameVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            1   13     3        frameSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            3   12     4       frameLevel  I
            4   12     5       scopeLevel  I
            5   12     6        memberEnv  Lcom/oracle/truffle/js/parser/env/Environment;
            6   12     7  constructorSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            7   12     8      constructor  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   10     9            brand  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   12     9            brand  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                Name  Flags
      base            
      privateNameVar  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterIndexNode(com.oracle.js.parser.ir.IndexNode);
    descriptor: (Lcom/oracle/js/parser/ir/IndexNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IndexNode indexNode
         0: .line 2804
            aload 0 /* this */
            aload 1 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.getBase:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* base */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
         1: .line 2805
            aload 0 /* this */
            aload 1 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.getIndex:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* index */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode index
         2: .line 2806
            aload 1 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.isOptionalChain:()Z
            ifeq 4
         3: .line 2807
            aload 0 /* this */
            aload 1 /* indexNode */
            aload 2 /* base */
            aload 3 /* index */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createOptionalIndexNode:(Lcom/oracle/js/parser/ir/IndexNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         4: .line 2809
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* base */
            aload 3 /* index */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadElementNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            aload 1 /* indexNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode index
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.IndexNode indexNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  indexNode  Lcom/oracle/js/parser/ir/IndexNode;
            1    5     2       base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    5     3      index  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      indexNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode createOptionalIndexNode(com.oracle.js.parser.ir.IndexNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/IndexNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.IndexNode indexNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode index
         0: .line 2813
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 2 /* base */
            aload 1 /* indexNode */
            invokevirtual com.oracle.js.parser.ir.IndexNode.isOptional:()Z
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.filterOptionalChainTarget:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 3 /* index */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createReadElementNode:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            astore 4 /* read */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode read
         1: .line 2814
            aload 0 /* this */
            aload 4 /* read */
            aload 1 /* indexNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         2: .line 2815
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 4 /* read */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createOptionalChain:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode read
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode index
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode base
        end local 1 // com.oracle.js.parser.ir.IndexNode indexNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  indexNode  Lcom/oracle/js/parser/ir/IndexNode;
            0    3     2       base  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    3     3      index  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            1    3     4       read  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      indexNode  
      base       
      index      

  public com.oracle.truffle.js.nodes.JavaScriptNode enterObjectNode(com.oracle.js.parser.ir.ObjectNode);
    descriptor: (Lcom/oracle/js/parser/ir/ObjectNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ObjectNode objectNode
         0: .line 2820
            aload 0 /* this */
            aload 1 /* objectNode */
            invokevirtual com.oracle.js.parser.ir.ObjectNode.getElements:()Ljava/util/List;
            iconst_0
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformPropertyDefinitionList:(Ljava/util/List;ZLcom/oracle/js/parser/ir/Symbol;)Ljava/util/ArrayList;
            astore 2 /* members */
        start local 2 // java.util.ArrayList members
         1: .line 2821
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* members */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createObjectLiteral:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/util/ArrayList;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* objectNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // java.util.ArrayList members
        end local 1 // com.oracle.js.parser.ir.ObjectNode objectNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1  objectNode  Lcom/oracle/js/parser/ir/ObjectNode;
            1    2     2     members  Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;>;
    MethodParameters:
            Name  Flags
      objectNode  

  private java.util.ArrayList<com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode> transformPropertyDefinitionList(java.util.List<com.oracle.js.parser.ir.PropertyNode>, boolean, com.oracle.js.parser.ir.Symbol);
    descriptor: (Ljava/util/List;ZLcom/oracle/js/parser/ir/Symbol;)Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.util.List properties
        start local 2 // boolean isClass
        start local 3 // com.oracle.js.parser.ir.Symbol classNameSymbol
         0: .line 2825
            new java.util.ArrayList
            dup
            aload 1 /* properties */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* members */
        start local 4 // java.util.ArrayList members
         1: .line 2826
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 15
         3: .line 2827
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 1 /* properties */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.PropertyNode
            astore 6 /* property */
        start local 6 // com.oracle.js.parser.ir.PropertyNode property
         4: .line 2830
            aload 6 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            ifnonnull 5
            aload 6 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isClassField:()Z
            ifeq 7
         5: .line 2831
      StackMap locals: com.oracle.js.parser.ir.PropertyNode
      StackMap stack:
            aload 0 /* this */
            aload 6 /* property */
            iload 2 /* isClass */
            aload 3 /* classNameSymbol */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterObjectPropertyNode:(Lcom/oracle/js/parser/ir/PropertyNode;ZLcom/oracle/js/parser/ir/Symbol;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            astore 7 /* member */
        start local 7 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode member
         6: .line 2832
            goto 13
        end local 7 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode member
      StackMap locals:
      StackMap stack:
         7: aload 6 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isRest:()Z
            ifeq 12
         8: .line 2833
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 9
            iload 2 /* isClass */
            ifeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 2834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.UnaryNode
            invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* from */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode from
        10: .line 2835
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 6 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            aload 8 /* from */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createSpreadObjectMember:(ZLcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            astore 7 /* member */
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode from
        start local 7 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode member
        11: .line 2836
            goto 13
        end local 7 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode member
        12: .line 2837
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* property */
            iload 2 /* isClass */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterObjectAccessorNode:(Lcom/oracle/js/parser/ir/PropertyNode;Z)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            astore 7 /* member */
        start local 7 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode member
        13: .line 2839
      StackMap locals: com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode
      StackMap stack:
            aload 4 /* members */
            aload 7 /* member */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode member
        end local 6 // com.oracle.js.parser.ir.PropertyNode property
        14: .line 2826
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            aload 1 /* properties */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 5 // int i
        16: .line 2841
            aload 4 /* members */
            areturn
        end local 4 // java.util.ArrayList members
        end local 3 // com.oracle.js.parser.ir.Symbol classNameSymbol
        end local 2 // boolean isClass
        end local 1 // java.util.List properties
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   17     1       properties  Ljava/util/List<Lcom/oracle/js/parser/ir/PropertyNode;>;
            0   17     2          isClass  Z
            0   17     3  classNameSymbol  Lcom/oracle/js/parser/ir/Symbol;
            1   17     4          members  Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;>;
            2   16     5                i  I
            4   14     6         property  Lcom/oracle/js/parser/ir/PropertyNode;
            6    7     7           member  Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
           11   12     7           member  Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
           13   14     7           member  Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
           10   11     8             from  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    Signature: (Ljava/util/List<Lcom/oracle/js/parser/ir/PropertyNode;>;ZLcom/oracle/js/parser/ir/Symbol;)Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;>;
    MethodParameters:
                 Name  Flags
      properties       
      isClass          
      classNameSymbol  

  private com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode enterObjectAccessorNode(com.oracle.js.parser.ir.PropertyNode, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/PropertyNode;Z)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.PropertyNode property
        start local 2 // boolean isClass
         0: .line 2845
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getGetter:()Lcom/oracle/js/parser/ir/FunctionNode;
            ifnonnull 1
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getSetter:()Lcom/oracle/js/parser/ir/FunctionNode;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getGetter:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getAccessor:(Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* getter */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode getter
         2: .line 2847
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getSetter:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.getAccessor:(Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* setter */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode setter
         3: .line 2848
            iload 2 /* isClass */
            ifeq 4
            iconst_0
            goto 5
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* enumerable */
        start local 5 // boolean enumerable
         6: .line 2849
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isComputed:()Z
            ifeq 8
         7: .line 2850
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            iload 5 /* enumerable */
            aload 3 /* getter */
            aload 4 /* setter */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createComputedAccessorMember:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZZLcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
         8: .line 2851
      StackMap locals: int
      StackMap stack:
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isPrivate:()Z
            ifeq 12
         9: .line 2852
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getPrivateName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 6 /* privateVar */
        start local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef privateVar
        10: .line 2853
            aload 6 /* privateVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 7 /* writePrivateNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writePrivateNode
        11: .line 2854
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            aload 3 /* getter */
            aload 4 /* setter */
            aload 7 /* writePrivateNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrivateAccessorMember:(ZLcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
        end local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writePrivateNode
        end local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef privateVar
        12: .line 2856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKeyName:()Ljava/lang/String;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            iload 5 /* enumerable */
            aload 3 /* getter */
            aload 4 /* setter */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessorMember:(Ljava/lang/String;ZZLcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
        end local 5 // boolean enumerable
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode setter
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode getter
        end local 2 // boolean isClass
        end local 1 // com.oracle.js.parser.ir.PropertyNode property
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   13     1          property  Lcom/oracle/js/parser/ir/PropertyNode;
            0   13     2           isClass  Z
            2   13     3            getter  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3   13     4            setter  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6   13     5        enumerable  Z
           10   12     6        privateVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           11   12     7  writePrivateNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
    MethodParameters:
          Name  Flags
      property  
      isClass   

  private com.oracle.truffle.js.nodes.JavaScriptNode getAccessor(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode accessorFunction
         0: .line 2861
            aload 1 /* accessorFunction */
            ifnonnull 2
         1: .line 2862
            aconst_null
            areturn
         2: .line 2864
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* accessorFunction */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* function */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode function
         3: .line 2865
            aload 1 /* accessorFunction */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsSuper:()Z
            ifeq 6
         4: .line 2866
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 5
            aload 1 /* accessorFunction */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isMethod:()Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 2867
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* function */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createMakeMethod:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* function */
         6: .line 2869
      StackMap locals:
      StackMap stack:
            aload 2 /* function */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode function
        end local 1 // com.oracle.js.parser.ir.FunctionNode accessorFunction
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    7     1  accessorFunction  Lcom/oracle/js/parser/ir/FunctionNode;
            3    7     2          function  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      accessorFunction  

  private com.oracle.truffle.js.nodes.JavaScriptNode transformPropertyValue(com.oracle.js.parser.ir.Expression, com.oracle.js.parser.ir.Symbol);
    descriptor: (Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Symbol;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Expression propertyValue
        start local 2 // com.oracle.js.parser.ir.Symbol classNameSymbol
         0: .line 2873
            aload 1 /* propertyValue */
            ifnonnull 2
         1: .line 2875
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createConstantUndefined:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 2879
      StackMap locals:
      StackMap stack:
            aload 2 /* classNameSymbol */
            ifnull 4
         3: .line 2880
            aload 2 /* classNameSymbol */
            iconst_1
            invokevirtual com.oracle.js.parser.ir.Symbol.setHasBeenDeclared:(Z)V
         4: .line 2882
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* propertyValue */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* value */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode value
         5: .line 2883
            aload 2 /* classNameSymbol */
            ifnull 7
         6: .line 2884
            aload 2 /* classNameSymbol */
            iconst_0
            invokevirtual com.oracle.js.parser.ir.Symbol.setHasBeenDeclared:(Z)V
         7: .line 2887
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 1 /* propertyValue */
            instanceof com.oracle.js.parser.ir.FunctionNode
            ifeq 10
            aload 1 /* propertyValue */
            checkcast com.oracle.js.parser.ir.FunctionNode
            invokevirtual com.oracle.js.parser.ir.FunctionNode.needsSuper:()Z
            ifeq 10
         8: .line 2888
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 9
            aload 1 /* propertyValue */
            checkcast com.oracle.js.parser.ir.FunctionNode
            invokevirtual com.oracle.js.parser.ir.FunctionNode.isMethod:()Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 2889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* value */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createMakeMethod:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* value */
        10: .line 2891
      StackMap locals:
      StackMap stack:
            aload 3 /* value */
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode value
        end local 2 // com.oracle.js.parser.ir.Symbol classNameSymbol
        end local 1 // com.oracle.js.parser.ir.Expression propertyValue
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   11     1    propertyValue  Lcom/oracle/js/parser/ir/Expression;
            0   11     2  classNameSymbol  Lcom/oracle/js/parser/ir/Symbol;
            5   11     3            value  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                 Name  Flags
      propertyValue    
      classNameSymbol  

  private com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode enterObjectPropertyNode(com.oracle.js.parser.ir.PropertyNode, boolean, com.oracle.js.parser.ir.Symbol);
    descriptor: (Lcom/oracle/js/parser/ir/PropertyNode;ZLcom/oracle/js/parser/ir/Symbol;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.PropertyNode property
        start local 2 // boolean isClass
        start local 3 // com.oracle.js.parser.ir.Symbol classNameSymbol
         0: .line 2895
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            aload 3 /* classNameSymbol */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformPropertyValue:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Symbol;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* value */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode value
         1: .line 2897
            iload 2 /* isClass */
            ifeq 2
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isClassField:()Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 5 /* enumerable */
        start local 5 // boolean enumerable
         4: .line 2898
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isComputed:()Z
            ifeq 7
         5: .line 2899
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* computedKey */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode computedKey
         6: .line 2900
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 6 /* computedKey */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            iload 5 /* enumerable */
            aload 4 /* value */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isClassField:()Z
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isAnonymousFunctionDefinition:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createComputedDataMember:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZZLcom/oracle/truffle/js/nodes/JavaScriptNode;ZZ)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode computedKey
         7: .line 2901
      StackMap locals: int
      StackMap stack:
            iload 2 /* isClass */
            ifne 9
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isProto:()Z
            ifeq 9
         8: .line 2902
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKeyName:()Ljava/lang/String;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            aload 4 /* value */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createProtoMember:(Ljava/lang/String;ZLcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
         9: .line 2903
      StackMap locals:
      StackMap stack:
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isPrivate:()Z
            ifeq 16
        10: .line 2904
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getPrivateName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 6 /* privateVar */
        start local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef privateVar
        11: .line 2905
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isClassField:()Z
            ifeq 14
        12: .line 2906
            aload 6 /* privateVar */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getPrivateName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createNewPrivateName:(Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 7 /* writePrivateNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writePrivateNode
        13: .line 2907
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 6 /* privateVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            aload 4 /* value */
            aload 7 /* writePrivateNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrivateFieldMember:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;ZLcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
        end local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writePrivateNode
        14: .line 2909
      StackMap locals: com.oracle.truffle.js.parser.env.Environment$VarRef
      StackMap stack:
            aload 6 /* privateVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
            astore 7 /* writePrivateNode */
        start local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writePrivateNode
        15: .line 2910
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            aload 4 /* value */
            aload 7 /* writePrivateNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createPrivateMethodMember:(ZLcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
        end local 7 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writePrivateNode
        end local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef privateVar
        16: .line 2913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getKeyName:()Ljava/lang/String;
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isStatic:()Z
            iload 5 /* enumerable */
            aload 4 /* value */
            aload 1 /* property */
            invokevirtual com.oracle.js.parser.ir.PropertyNode.isClassField:()Z
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDataMember:(Ljava/lang/String;ZZLcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            areturn
        end local 5 // boolean enumerable
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode value
        end local 3 // com.oracle.js.parser.ir.Symbol classNameSymbol
        end local 2 // boolean isClass
        end local 1 // com.oracle.js.parser.ir.PropertyNode property
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   17     1          property  Lcom/oracle/js/parser/ir/PropertyNode;
            0   17     2           isClass  Z
            0   17     3   classNameSymbol  Lcom/oracle/js/parser/ir/Symbol;
            1   17     4             value  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   17     5        enumerable  Z
            6    7     6       computedKey  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   16     6        privateVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           13   14     7  writePrivateNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
           15   16     7  writePrivateNode  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
    MethodParameters:
                 Name  Flags
      property         
      isClass          
      classNameSymbol  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterTryNode(com.oracle.js.parser.ir.TryNode);
    descriptor: (Lcom/oracle/js/parser/ir/TryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=19, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.TryNode tryNode
         0: .line 2919
            aload 0 /* this */
            aload 1 /* tryNode */
            invokevirtual com.oracle.js.parser.ir.TryNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* tryBlock */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode tryBlock
         1: .line 2920
            aload 2 /* tryBlock */
            astore 3 /* result */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode result
         2: .line 2921
            aload 1 /* tryNode */
            invokevirtual com.oracle.js.parser.ir.TryNode.getCatchBlocks:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 46
         3: .line 2922
            aload 1 /* tryNode */
            invokevirtual com.oracle.js.parser.ir.TryNode.getCatchBlocks:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 45
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Block
            astore 4 /* catchParamBlock */
        start local 4 // com.oracle.js.parser.ir.Block catchParamBlock
         5: .line 2923
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.js.parser.ir.Block.getLastStatement:()Lcom/oracle/js/parser/ir/Statement;
            checkcast com.oracle.js.parser.ir.CatchNode
            astore 6 /* catchClause */
        start local 6 // com.oracle.js.parser.ir.CatchNode catchClause
         6: .line 2924
            aload 6 /* catchClause */
            invokevirtual com.oracle.js.parser.ir.CatchNode.getException:()Lcom/oracle/js/parser/ir/Expression;
            astore 7 /* catchParameter */
        start local 7 // com.oracle.js.parser.ir.Expression catchParameter
         7: .line 2925
            aload 6 /* catchClause */
            invokevirtual com.oracle.js.parser.ir.CatchNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            astore 8 /* catchBody */
        start local 8 // com.oracle.js.parser.ir.Block catchBody
         8: .line 2926
            aload 6 /* catchClause */
            invokevirtual com.oracle.js.parser.ir.CatchNode.getDestructuringPattern:()Lcom/oracle/js/parser/ir/Expression;
            astore 9 /* pattern */
        start local 9 // com.oracle.js.parser.ir.Expression pattern
         9: .line 2930
            aconst_null
            astore 10
            aconst_null
            astore 11
        10: aload 0 /* this */
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockEnvironment:(Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            astore 12 /* catchParamEnv */
        start local 12 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable catchParamEnv
        11: .line 2931
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.js.parser.ir.LexicalContext.push:(Lcom/oracle/js/parser/ir/LexicalContextNode;)Lcom/oracle/js/parser/ir/LexicalContextNode;
            pop
        12: .line 2934
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.js.parser.ir.Block.getStatements:()Ljava/util/List;
            iconst_0
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.js.parser.ir.Block.getStatementCount:()I
            iconst_1
            isub
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 17
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.Block java.util.Iterator com.oracle.js.parser.ir.CatchNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Block com.oracle.js.parser.ir.Expression java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable top java.util.Iterator
      StackMap stack:
        13: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Statement
            astore 13 /* statement */
        start local 13 // com.oracle.js.parser.ir.Statement statement
        14: .line 2935
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 15
            aload 13 /* statement */
            instanceof com.oracle.js.parser.ir.VarNode
            ifne 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 2936
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.Block java.util.Iterator com.oracle.js.parser.ir.CatchNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Block com.oracle.js.parser.ir.Expression java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable com.oracle.js.parser.ir.Statement java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 13 /* statement */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 15 /* empty */
        start local 15 // com.oracle.truffle.js.nodes.JavaScriptNode empty
        16: .line 2937
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 17
            aload 15 /* empty */
            instanceof com.oracle.truffle.js.nodes.control.EmptyNode
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 15 // com.oracle.truffle.js.nodes.JavaScriptNode empty
        end local 13 // com.oracle.js.parser.ir.Statement statement
        17: .line 2934
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.Block java.util.Iterator com.oracle.js.parser.ir.CatchNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Block com.oracle.js.parser.ir.Expression java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 2940
            aconst_null
            astore 13 /* writeErrorVar */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode writeErrorVar
        19: .line 2941
            aconst_null
            astore 14 /* destructuring */
        start local 14 // com.oracle.truffle.js.nodes.JavaScriptNode destructuring
        20: .line 2942
            aload 7 /* catchParameter */
            ifnull 26
        21: .line 2943
            aload 7 /* catchParameter */
            checkcast com.oracle.js.parser.ir.IdentNode
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 15 /* errorVarName */
        start local 15 // java.lang.String errorVarName
        22: .line 2944
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 15 /* errorVarName */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 16 /* errorVar */
        start local 16 // com.oracle.truffle.js.parser.env.Environment$VarRef errorVar
        23: .line 2945
            aload 16 /* errorVar */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* writeErrorVar */
        24: .line 2946
            aload 9 /* pattern */
            ifnull 26
        25: .line 2948
            aload 0 /* this */
            aload 9 /* pattern */
            aload 9 /* pattern */
            aload 16 /* errorVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformAssignment:(Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/js/parser/ir/Expression;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 14 /* destructuring */
        end local 16 // com.oracle.truffle.js.parser.env.Environment$VarRef errorVar
        end local 15 // java.lang.String errorVarName
        26: .line 2952
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.Block java.util.Iterator com.oracle.js.parser.ir.CatchNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Block com.oracle.js.parser.ir.Expression java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 8 /* catchBody */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 15 /* catchBlock */
        start local 15 // com.oracle.truffle.js.nodes.JavaScriptNode catchBlock
        27: .line 2955
            aload 6 /* catchClause */
            invokevirtual com.oracle.js.parser.ir.CatchNode.getExceptionCondition:()Lcom/oracle/js/parser/ir/Expression;
            ifnull 30
        28: .line 2956
            aload 0 /* this */
            aload 6 /* catchClause */
            invokevirtual com.oracle.js.parser.ir.CatchNode.getExceptionCondition:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 16 /* conditionExpression */
        start local 16 // com.oracle.truffle.js.nodes.JavaScriptNode conditionExpression
        29: .line 2957
            goto 31
        end local 16 // com.oracle.truffle.js.nodes.JavaScriptNode conditionExpression
        30: .line 2958
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aconst_null
            astore 16 /* conditionExpression */
        start local 16 // com.oracle.truffle.js.nodes.JavaScriptNode conditionExpression
        31: .line 2960
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 12 /* catchParamEnv */
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.wrapBlockScope:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.function.BlockScopeNode
            astore 17 /* blockScope */
        start local 17 // com.oracle.truffle.js.nodes.function.BlockScopeNode blockScope
        32: .line 2961
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 3 /* result */
            aload 15 /* catchBlock */
            aload 13 /* writeErrorVar */
            aload 17 /* blockScope */
            aload 14 /* destructuring */
            aload 16 /* conditionExpression */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTryCatch:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/function/BlockScopeNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* result */
        33: .line 2962
            aload 0 /* this */
            aload 3 /* result */
            aload 1 /* tryNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        end local 17 // com.oracle.truffle.js.nodes.function.BlockScopeNode blockScope
        end local 16 // com.oracle.truffle.js.nodes.JavaScriptNode conditionExpression
        end local 15 // com.oracle.truffle.js.nodes.JavaScriptNode catchBlock
        end local 14 // com.oracle.truffle.js.nodes.JavaScriptNode destructuring
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode writeErrorVar
        34: .line 2963
            goto 38
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.Block java.util.Iterator com.oracle.js.parser.ir.CatchNode com.oracle.js.parser.ir.Expression com.oracle.js.parser.ir.Block com.oracle.js.parser.ir.Expression java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        35: astore 18
        36: .line 2964
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.js.parser.ir.LexicalContext.pop:(Lcom/oracle/js/parser/ir/LexicalContextNode;)Lcom/oracle/js/parser/ir/LexicalContextNode;
            pop
        37: .line 2965
            aload 18
            athrow
        38: .line 2964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            aload 4 /* catchParamBlock */
            invokevirtual com.oracle.js.parser.ir.LexicalContext.pop:(Lcom/oracle/js/parser/ir/LexicalContextNode;)Lcom/oracle/js/parser/ir/LexicalContextNode;
            pop
        39: .line 2966
            aload 12 /* catchParamEnv */
            ifnull 45
            aload 12 /* catchParamEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
            goto 45
      StackMap locals:
      StackMap stack: java.lang.Throwable
        40: astore 10
            aload 12 /* catchParamEnv */
            ifnull 41
            aload 12 /* catchParamEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 12 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable catchParamEnv
      StackMap locals:
      StackMap stack:
        41: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 11
            aload 10
            ifnonnull 43
            aload 11
            astore 10
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 10
            aload 11
            if_acmpeq 44
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        44: aload 10
            athrow
        end local 9 // com.oracle.js.parser.ir.Expression pattern
        end local 8 // com.oracle.js.parser.ir.Block catchBody
        end local 7 // com.oracle.js.parser.ir.Expression catchParameter
        end local 6 // com.oracle.js.parser.ir.CatchNode catchClause
        end local 4 // com.oracle.js.parser.ir.Block catchParamBlock
        45: .line 2922
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        46: .line 2969
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.TryNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 1 /* tryNode */
            invokevirtual com.oracle.js.parser.ir.TryNode.getFinallyBody:()Lcom/oracle/js/parser/ir/Block;
            ifnull 49
        47: .line 2970
            aload 0 /* this */
            aload 1 /* tryNode */
            invokevirtual com.oracle.js.parser.ir.TryNode.getFinallyBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* finallyBlock */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode finallyBlock
        48: .line 2971
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* result */
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* finallyBlock */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapSaveAndRestoreCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTryFinally:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* result */
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode finallyBlock
        49: .line 2973
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* result */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearAndGetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* result */
        50: .line 2974
            aload 3 /* result */
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode result
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode tryBlock
        end local 1 // com.oracle.js.parser.ir.TryNode tryNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   51     0                 this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   51     1              tryNode  Lcom/oracle/js/parser/ir/TryNode;
            1   51     2             tryBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2   51     3               result  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            5   45     4      catchParamBlock  Lcom/oracle/js/parser/ir/Block;
            6   45     6          catchClause  Lcom/oracle/js/parser/ir/CatchNode;
            7   45     7       catchParameter  Lcom/oracle/js/parser/ir/Expression;
            8   45     8            catchBody  Lcom/oracle/js/parser/ir/Block;
            9   45     9              pattern  Lcom/oracle/js/parser/ir/Expression;
           11   41    12        catchParamEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
           14   17    13            statement  Lcom/oracle/js/parser/ir/Statement;
           16   17    15                empty  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           19   34    13        writeErrorVar  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           20   34    14        destructuring  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           22   26    15         errorVarName  Ljava/lang/String;
           23   26    16             errorVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           27   34    15           catchBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           29   30    16  conditionExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           31   34    16  conditionExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           32   34    17           blockScope  Lcom/oracle/truffle/js/nodes/function/BlockScopeNode;
           48   49     4         finallyBlock  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
          12    35      35  any
          11    39      40  any
          10    42      42  any
    MethodParameters:
         Name  Flags
      tryNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterThrowNode(com.oracle.js.parser.ir.ThrowNode);
    descriptor: (Lcom/oracle/js/parser/ir/ThrowNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ThrowNode throwNode
         0: .line 2979
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            aload 1 /* throwNode */
            invokevirtual com.oracle.js.parser.ir.ThrowNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createThrow:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* throwNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.ThrowNode throwNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  throwNode  Lcom/oracle/js/parser/ir/ThrowNode;
    MethodParameters:
           Name  Flags
      throwNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterSwitchNode(com.oracle.js.parser.ir.SwitchNode);
    descriptor: (Lcom/oracle/js/parser/ir/SwitchNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.SwitchNode switchNode
         0: .line 2984
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentBlock:()Lcom/oracle/js/parser/ir/Block;
            astore 2 /* switchBlock */
        start local 2 // com.oracle.js.parser.ir.Block switchBlock
         1: .line 2985
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 2 /* switchBlock */
            invokevirtual com.oracle.js.parser.ir.Block.isSwitchBlock:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2987
      StackMap locals: com.oracle.js.parser.ir.Block
      StackMap stack:
            aload 0 /* this */
            aload 1 /* switchNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.makeUniqueTempVarNameForStatement:(Lcom/oracle/js/parser/ir/Statement;)Ljava/lang/String;
            astore 3 /* switchVarName */
        start local 3 // java.lang.String switchVarName
         3: .line 2988
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 3 /* switchVarName */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
         4: .line 2990
            aload 0 /* this */
            aload 1 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* switchExpression */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode switchExpression
         5: .line 2991
            aload 1 /* switchNode */
            aload 4 /* switchExpression */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isSwitchTypeofStringConstant:(Lcom/oracle/js/parser/ir/SwitchNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
            istore 5 /* isSwitchTypeofString */
        start local 5 // boolean isSwitchTypeofString
         6: .line 2992
            iload 5 /* isSwitchTypeofString */
            ifeq 8
         7: .line 2993
            aload 4 /* switchExpression */
            checkcast com.oracle.truffle.js.nodes.unary.TypeOfNode
            invokevirtual com.oracle.truffle.js.nodes.unary.TypeOfNode.getOperand:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* switchExpression */
         8: .line 2996
      StackMap locals: java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 3 /* switchVarName */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            astore 6 /* switchVar */
        start local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef switchVar
         9: .line 2997
            aload 6 /* switchVar */
            aload 4 /* switchExpression */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 7 /* writeSwitchNode */
        start local 7 // com.oracle.truffle.js.nodes.JavaScriptNode writeSwitchNode
        10: .line 3000
            aconst_null
            astore 9
            aconst_null
            astore 10
        11: aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.pushBreakTarget:(Ljava/lang/Object;)Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable;
            astore 11 /* target */
        start local 11 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable target
        12: .line 3002
            getstatic com.oracle.truffle.js.runtime.JSConfig.OptimizeNoFallthroughSwitch:Z
            ifeq 15
            aload 1 /* switchNode */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isNoFallthroughSwitch:(Lcom/oracle/js/parser/ir/SwitchNode;)Z
            ifeq 15
        13: .line 3003
            aload 0 /* this */
            aload 1 /* switchNode */
            aload 6 /* switchVar */
            iload 5 /* isSwitchTypeofString */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ifElseFromSwitch:(Lcom/oracle/js/parser/ir/SwitchNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* switchBody */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode switchBody
        14: .line 3004
            goto 16
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode switchBody
        15: .line 3005
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.js.parser.ir.Block java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack:
            aload 0 /* this */
            aload 1 /* switchNode */
            aload 6 /* switchVar */
            iload 5 /* isSwitchTypeofString */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.defaultSwitchNode:(Lcom/oracle/js/parser/ir/SwitchNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* switchBody */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode switchBody
        16: .line 3007
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.js.parser.ir.Block java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack:
            aload 0 /* this */
            aload 8 /* switchBody */
            aload 1 /* switchNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        17: .line 3008
            aload 0 /* this */
            aload 11 /* target */
            aload 8 /* switchBody */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.wrapBreakTargetNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearAndGetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* switchBody */
        18: .line 3009
            aload 11 /* target */
            ifnull 24
            aload 11 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
            goto 24
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode switchBody
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.js.parser.ir.Block java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode top java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable
      StackMap stack: java.lang.Throwable
        19: astore 9
            aload 11 /* target */
            ifnull 20
            aload 11 /* target */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable.close:()V
        end local 11 // com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable target
      StackMap locals:
      StackMap stack:
        20: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 10
            aload 9
            ifnonnull 22
            aload 10
            astore 9
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 9
            aload 10
            if_acmpeq 23
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 9
            athrow
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode switchBody
        24: .line 3010
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.js.parser.ir.Block java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode int com.oracle.truffle.js.parser.env.Environment$VarRef com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 7 /* writeSwitchNode */
            aastore
            dup
            iconst_1
            aload 8 /* switchBody */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode switchBody
        end local 7 // com.oracle.truffle.js.nodes.JavaScriptNode writeSwitchNode
        end local 6 // com.oracle.truffle.js.parser.env.Environment$VarRef switchVar
        end local 5 // boolean isSwitchTypeofString
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode switchExpression
        end local 3 // java.lang.String switchVarName
        end local 2 // com.oracle.js.parser.ir.Block switchBlock
        end local 1 // com.oracle.js.parser.ir.SwitchNode switchNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   25     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   25     1            switchNode  Lcom/oracle/js/parser/ir/SwitchNode;
            1   25     2           switchBlock  Lcom/oracle/js/parser/ir/Block;
            3   25     3         switchVarName  Ljava/lang/String;
            5   25     4      switchExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6   25     5  isSwitchTypeofString  Z
            9   25     6             switchVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
           10   25     7       writeSwitchNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           14   15     8            switchBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           16   19     8            switchBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           24   25     8            switchBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           12   20    11                target  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment$JumpTargetCloseable<Lcom/oracle/truffle/js/nodes/control/BreakTarget;>;
      Exception table:
        from    to  target  type
          12    18      19  any
          11    21      21  any
    MethodParameters:
            Name  Flags
      switchNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode defaultSwitchNode(com.oracle.js.parser.ir.SwitchNode, com.oracle.truffle.js.parser.env.Environment$VarRef, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/SwitchNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=17, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.SwitchNode switchNode
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef switchVar
        start local 3 // boolean isSwitchTypeofString
         0: .line 3014
            aload 1 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.getCases:()Ljava/util/List;
            astore 4 /* cases */
        start local 4 // java.util.List cases
         1: .line 3015
            aload 4 /* cases */
            invokeinterface java.util.List.size:()I
            aload 1 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.hasDefaultCase:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List
      StackMap stack: int
         2: iconst_1
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List
      StackMap stack: int int
         3: iadd
            istore 5 /* size */
        start local 5 // int size
         4: .line 3016
            iload 5 /* size */
            newarray 10
            astore 6 /* jumptable */
        start local 6 // int[] jumptable
         5: .line 3017
            iconst_m1
            istore 7 /* defaultpos */
        start local 7 // int defaultpos
         6: .line 3018
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* statementList */
        start local 8 // java.util.List statementList
         7: .line 3019
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* caseExprList */
        start local 9 // java.util.List caseExprList
         8: .line 3020
            iconst_m1
            istore 10 /* lastNonEmptyIndex */
        start local 10 // int lastNonEmptyIndex
         9: .line 3021
            aload 4 /* cases */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 33
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List int int[] int java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
        10: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.CaseNode
            astore 11 /* switchCase */
        start local 11 // com.oracle.js.parser.ir.CaseNode switchCase
        11: .line 3022
            aload 11 /* switchCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            ifnull 16
        12: .line 3023
            aload 6 /* jumptable */
            aload 9 /* caseExprList */
            invokeinterface java.util.List.size:()I
            aload 8 /* statementList */
            invokeinterface java.util.List.size:()I
            iastore
        13: .line 3024
            aload 2 /* switchVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* readSwitchVarNode */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode readSwitchVarNode
        14: .line 3025
            aload 9 /* caseExprList */
            aload 0 /* this */
            iload 3 /* isSwitchTypeofString */
            aload 11 /* switchCase */
            aload 13 /* readSwitchVarNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createSwitchCaseExpr:(ZLcom/oracle/js/parser/ir/CaseNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode readSwitchVarNode
        15: .line 3026
            goto 17
        16: .line 3027
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List int int[] int java.util.List java.util.List int com.oracle.js.parser.ir.CaseNode java.util.Iterator
      StackMap stack:
            aload 8 /* statementList */
            invokeinterface java.util.List.size:()I
            istore 7 /* defaultpos */
        17: .line 3029
      StackMap locals:
      StackMap stack:
            aload 11 /* switchCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getStatements:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 33
        18: .line 3030
            aload 11 /* switchCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getStatements:()Ljava/util/List;
            astore 13 /* statements */
        start local 13 // java.util.List statements
        19: .line 3031
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        20: goto 32
        21: .line 3032
      StackMap locals: java.util.List int
      StackMap stack:
            aload 13 /* statements */
            iload 14 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Statement
            astore 15 /* statement */
        start local 15 // com.oracle.js.parser.ir.Statement statement
        22: .line 3033
            aload 0 /* this */
            aload 15 /* statement */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 16 /* statementNode */
        start local 16 // com.oracle.truffle.js.nodes.JavaScriptNode statementNode
        23: .line 3034
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 30
        24: .line 3035
            aload 15 /* statement */
            invokevirtual com.oracle.js.parser.ir.Statement.isCompletionValueNeverEmpty:()Z
            ifne 29
        25: .line 3036
            iload 10 /* lastNonEmptyIndex */
            iflt 30
        26: .line 3037
            aload 8 /* statementList */
            iload 10 /* lastNonEmptyIndex */
            aload 0 /* this */
            aload 8 /* statementList */
            iload 10 /* lastNonEmptyIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapSetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 3038
            iconst_m1
            istore 10 /* lastNonEmptyIndex */
        28: .line 3040
            goto 30
        29: .line 3041
      StackMap locals: com.oracle.js.parser.ir.Statement com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 8 /* statementList */
            invokeinterface java.util.List.size:()I
            istore 10 /* lastNonEmptyIndex */
        30: .line 3044
      StackMap locals:
      StackMap stack:
            aload 8 /* statementList */
            aload 16 /* statementNode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // com.oracle.truffle.js.nodes.JavaScriptNode statementNode
        end local 15 // com.oracle.js.parser.ir.Statement statement
        31: .line 3031
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 14 /* i */
            aload 13 /* statements */
            invokeinterface java.util.List.size:()I
            if_icmplt 21
        end local 14 // int i
        end local 13 // java.util.List statements
        end local 11 // com.oracle.js.parser.ir.CaseNode switchCase
        33: .line 3021
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List int int[] int java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        34: .line 3048
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 36
            iload 10 /* lastNonEmptyIndex */
            iflt 36
        35: .line 3049
            aload 8 /* statementList */
            iload 10 /* lastNonEmptyIndex */
            aload 0 /* this */
            aload 8 /* statementList */
            iload 10 /* lastNonEmptyIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapSetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 3052
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List int int[] int java.util.List java.util.List int
      StackMap stack:
            aload 6 /* jumptable */
            aload 6 /* jumptable */
            arraylength
            iconst_1
            isub
            iload 7 /* defaultpos */
            iconst_m1
            if_icmpeq 37
            iload 7 /* defaultpos */
            goto 38
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List int int[] int java.util.List java.util.List int
      StackMap stack: int[] int
        37: aload 8 /* statementList */
            invokeinterface java.util.List.size:()I
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.parser.env.Environment$VarRef int java.util.List int int[] int java.util.List java.util.List int
      StackMap stack: int[] int int
        38: iastore
        39: .line 3053
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 9 /* caseExprList */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            aload 6 /* jumptable */
            aload 8 /* statementList */
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.EMPTY_NODE_ARRAY:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createSwitch:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;[I[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/SwitchNode;
            areturn
        end local 10 // int lastNonEmptyIndex
        end local 9 // java.util.List caseExprList
        end local 8 // java.util.List statementList
        end local 7 // int defaultpos
        end local 6 // int[] jumptable
        end local 5 // int size
        end local 4 // java.util.List cases
        end local 3 // boolean isSwitchTypeofString
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef switchVar
        end local 1 // com.oracle.js.parser.ir.SwitchNode switchNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   40     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   40     1            switchNode  Lcom/oracle/js/parser/ir/SwitchNode;
            0   40     2             switchVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            0   40     3  isSwitchTypeofString  Z
            1   40     4                 cases  Ljava/util/List<Lcom/oracle/js/parser/ir/CaseNode;>;
            4   40     5                  size  I
            5   40     6             jumptable  [I
            6   40     7            defaultpos  I
            7   40     8         statementList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            8   40     9          caseExprList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
            9   40    10     lastNonEmptyIndex  I
           11   33    11            switchCase  Lcom/oracle/js/parser/ir/CaseNode;
           14   15    13     readSwitchVarNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           19   33    13            statements  Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;
           20   33    14                     i  I
           22   31    15             statement  Lcom/oracle/js/parser/ir/Statement;
           23   31    16         statementNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                      Name  Flags
      switchNode            
      switchVar             
      isSwitchTypeofString  

  private com.oracle.truffle.js.nodes.JavaScriptNode createSwitchCaseExpr(boolean, com.oracle.js.parser.ir.CaseNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (ZLcom/oracle/js/parser/ir/CaseNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // boolean isSwitchTypeofString
        start local 2 // com.oracle.js.parser.ir.CaseNode switchCase
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode readSwitchVarNode
         0: .line 3057
            aload 3 /* readSwitchVarNode */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         1: .line 3058
            iload 1 /* isSwitchTypeofString */
            ifeq 4
         2: .line 3059
            aload 2 /* switchCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            checkcast com.oracle.js.parser.ir.LiteralNode
            invokevirtual com.oracle.js.parser.ir.LiteralNode.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* typeString */
        start local 4 // java.lang.String typeString
         3: .line 3060
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 3 /* readSwitchVarNode */
            aload 4 /* typeString */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTypeofIdentical:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* switchCase */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 4 // java.lang.String typeString
         4: .line 3062
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            getstatic com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation.IDENTICAL:Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;
            aload 3 /* readSwitchVarNode */
            aload 0 /* this */
            aload 2 /* switchCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createBinary:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/NodeFactory$BinaryOperation;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* switchCase */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode readSwitchVarNode
        end local 2 // com.oracle.js.parser.ir.CaseNode switchCase
        end local 1 // boolean isSwitchTypeofString
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  isSwitchTypeofString  Z
            0    5     2            switchCase  Lcom/oracle/js/parser/ir/CaseNode;
            0    5     3     readSwitchVarNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            3    4     4            typeString  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      isSwitchTypeofString  
      switchCase            
      readSwitchVarNode     

  private com.oracle.truffle.js.nodes.JavaScriptNode ifElseFromSwitch(com.oracle.js.parser.ir.SwitchNode, com.oracle.truffle.js.parser.env.Environment$VarRef, boolean);
    descriptor: (Lcom/oracle/js/parser/ir/SwitchNode;Lcom/oracle/truffle/js/parser/env/Environment$VarRef;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.SwitchNode switchNode
        start local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef switchVar
        start local 3 // boolean isSwitchTypeofString
         0: .line 3071
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 1
            aload 1 /* switchNode */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isNoFallthroughSwitch:(Lcom/oracle/js/parser/ir/SwitchNode;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3073
      StackMap locals:
      StackMap stack:
            aload 1 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.getCases:()Ljava/util/List;
            astore 4 /* cases */
        start local 4 // java.util.List cases
         2: .line 3074
            aload 1 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.getDefaultCase:()Lcom/oracle/js/parser/ir/CaseNode;
            astore 5 /* defaultCase */
        start local 5 // com.oracle.js.parser.ir.CaseNode defaultCase
         3: .line 3076
            aconst_null
            astore 6 /* curNode */
        start local 6 // com.oracle.truffle.js.nodes.JavaScriptNode curNode
         4: .line 3077
            aload 5 /* defaultCase */
            ifnull 7
         5: .line 3078
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* defaultCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getStatements:()Ljava/util/List;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformStatements:(Ljava/util/List;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.dropTerminalDirectBreakStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 6 /* curNode */
         6: .line 3079
            aload 0 /* this */
            aload 6 /* curNode */
            aload 5 /* defaultCase */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         7: .line 3082
      StackMap locals: java.util.List com.oracle.js.parser.ir.CaseNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            iconst_0
            istore 7 /* defaultCascade */
        start local 7 // boolean defaultCascade
         8: .line 3083
            iconst_1
            istore 8 /* lastCase */
        start local 8 // boolean lastCase
         9: .line 3084
            aload 4 /* cases */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 9 /* i */
        start local 9 // int i
        10: goto 37
        11: .line 3085
      StackMap locals: int int int
      StackMap stack:
            aload 4 /* cases */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.CaseNode
            astore 10 /* caseNode */
        start local 10 // com.oracle.js.parser.ir.CaseNode caseNode
        12: .line 3086
            aload 10 /* caseNode */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            ifnonnull 15
        13: .line 3089
            iconst_1
            istore 7 /* defaultCascade */
        14: .line 3090
            goto 35
        15: .line 3091
      StackMap locals: com.oracle.js.parser.ir.CaseNode
      StackMap stack:
            aload 2 /* switchVar */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createReadNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 11 /* readSwitchVarNode */
        start local 11 // com.oracle.truffle.js.nodes.JavaScriptNode readSwitchVarNode
        16: .line 3092
            aload 0 /* this */
            iload 3 /* isSwitchTypeofString */
            aload 10 /* caseNode */
            aload 11 /* readSwitchVarNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createSwitchCaseExpr:(ZLcom/oracle/js/parser/ir/CaseNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* test */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode test
        17: .line 3093
            aload 10 /* caseNode */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getStatements:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 30
            iload 8 /* lastCase */
            ifne 30
        18: .line 3095
            iload 7 /* defaultCascade */
            ifeq 26
        19: .line 3097
            aload 12 /* test */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isPotentiallySideEffecting:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
            ifeq 34
        20: .line 3098
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 12 /* test */
            aconst_null
            aconst_null
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/IfNode;
            astore 12 /* test */
        21: .line 3099
            aload 0 /* this */
            aload 12 /* test */
            aload 10 /* caseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        22: .line 3100
            aload 6 /* curNode */
            ifnonnull 23
            aload 0 /* this */
            aload 12 /* test */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.discardResult:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 24
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
        23: aload 0 /* this */
            iconst_2
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 12 /* test */
            aastore
            dup
            iconst_1
            aload 6 /* curNode */
            aastore
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        24: astore 6 /* curNode */
        25: .line 3102
            goto 34
        26: .line 3103
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 27
            aload 6 /* curNode */
            instanceof com.oracle.truffle.js.nodes.control.IfNode
            ifne 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 3105
      StackMap locals:
      StackMap stack:
            aload 6 /* curNode */
            checkcast com.oracle.truffle.js.nodes.control.IfNode
            astore 13 /* prevIfNode */
        start local 13 // com.oracle.truffle.js.nodes.control.IfNode prevIfNode
        28: .line 3106
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 13 /* prevIfNode */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 12 /* test */
            aload 13 /* prevIfNode */
            invokevirtual com.oracle.truffle.js.nodes.control.IfNode.getCondition:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createLogicalOr:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.copyIfWithCondition:(Lcom/oracle/truffle/js/nodes/control/IfNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/IfNode;
            astore 6 /* curNode */
        end local 13 // com.oracle.truffle.js.nodes.control.IfNode prevIfNode
        29: .line 3108
            goto 34
        30: .line 3110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 10 /* caseNode */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getStatements:()Ljava/util/List;
            iconst_0
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformStatements:(Ljava/util/List;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.dropTerminalDirectBreakStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 13 /* pass */
        start local 13 // com.oracle.truffle.js.nodes.JavaScriptNode pass
        31: .line 3111
            aload 0 /* this */
            aload 13 /* pass */
            aload 10 /* caseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        32: .line 3112
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 12 /* test */
            aload 13 /* pass */
            aload 6 /* curNode */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createIf:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/IfNode;
            astore 6 /* curNode */
        33: .line 3113
            iconst_0
            istore 7 /* defaultCascade */
        end local 13 // com.oracle.truffle.js.nodes.JavaScriptNode pass
        34: .line 3115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* curNode */
            aload 10 /* caseNode */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 11 // com.oracle.truffle.js.nodes.JavaScriptNode readSwitchVarNode
        35: .line 3117
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* lastCase */
        end local 10 // com.oracle.js.parser.ir.CaseNode caseNode
        36: .line 3084
            iinc 9 /* i */ -1
      StackMap locals:
      StackMap stack:
        37: iload 9 /* i */
            ifge 11
        end local 9 // int i
        38: .line 3119
            aload 6 /* curNode */
            ifnonnull 39
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEmpty:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 6 /* curNode */
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        40: areturn
        end local 8 // boolean lastCase
        end local 7 // boolean defaultCascade
        end local 6 // com.oracle.truffle.js.nodes.JavaScriptNode curNode
        end local 5 // com.oracle.js.parser.ir.CaseNode defaultCase
        end local 4 // java.util.List cases
        end local 3 // boolean isSwitchTypeofString
        end local 2 // com.oracle.truffle.js.parser.env.Environment$VarRef switchVar
        end local 1 // com.oracle.js.parser.ir.SwitchNode switchNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   41     0                  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   41     1            switchNode  Lcom/oracle/js/parser/ir/SwitchNode;
            0   41     2             switchVar  Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            0   41     3  isSwitchTypeofString  Z
            2   41     4                 cases  Ljava/util/List<Lcom/oracle/js/parser/ir/CaseNode;>;
            3   41     5           defaultCase  Lcom/oracle/js/parser/ir/CaseNode;
            4   41     6               curNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            8   41     7        defaultCascade  Z
            9   41     8              lastCase  Z
           10   38     9                     i  I
           12   36    10              caseNode  Lcom/oracle/js/parser/ir/CaseNode;
           16   35    11     readSwitchVarNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           17   35    12                  test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           28   29    13            prevIfNode  Lcom/oracle/truffle/js/nodes/control/IfNode;
           31   34    13                  pass  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                      Name  Flags
      switchNode            
      switchVar             
      isSwitchTypeofString  

  static boolean isPotentiallySideEffecting(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode test
         0: .line 3123
            aload 0 /* test */
            instanceof com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            ifeq 2
         1: .line 3124
            aload 0 /* test */
            checkcast com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode
            invokevirtual com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode.hasTemporalDeadZone:()Z
            ireturn
         2: .line 3126
      StackMap locals:
      StackMap stack:
            aload 0 /* test */
            instanceof com.oracle.truffle.js.nodes.RepeatableNode
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode test
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      test  

  private com.oracle.truffle.js.nodes.JavaScriptNode dropTerminalDirectBreakStatement(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode pass
         0: .line 3130
            aload 1 /* pass */
            instanceof com.oracle.truffle.js.nodes.control.SequenceNode
            ifeq 4
         1: .line 3131
            aload 1 /* pass */
            checkcast com.oracle.truffle.js.nodes.control.SequenceNode
            invokeinterface com.oracle.truffle.js.nodes.control.SequenceNode.getStatements:()[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* statements */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
         2: .line 3132
            aload 2 /* statements */
            arraylength
            ifle 4
            aload 2 /* statements */
            aload 2 /* statements */
            arraylength
            iconst_1
            isub
            aaload
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.isDirectBreakStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
            ifeq 4
         3: .line 3133
            aload 0 /* this */
            aload 2 /* statements */
            iconst_0
            aload 2 /* statements */
            arraylength
            iconst_1
            isub
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.createBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode[] statements
         4: .line 3136
      StackMap locals:
      StackMap stack:
            aload 1 /* pass */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode pass
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1        pass  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            2    4     2  statements  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      pass  

  private static boolean isDirectBreakStatement(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode statement
         0: .line 3140
            aload 0 /* statement */
            instanceof com.oracle.truffle.js.nodes.control.BreakNode
            ifeq 1
            aload 0 /* statement */
            checkcast com.oracle.truffle.js.nodes.control.BreakNode
            invokevirtual com.oracle.truffle.js.nodes.control.BreakNode.isDirectBreak:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode statement
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  statement  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      statement  

  private static boolean isNoFallthroughSwitch(com.oracle.js.parser.ir.SwitchNode);
    descriptor: (Lcom/oracle/js/parser/ir/SwitchNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // com.oracle.js.parser.ir.SwitchNode switchNode
         0: .line 3144
            aload 0 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.getCases:()Ljava/util/List;
            astore 1 /* cases */
        start local 1 // java.util.List cases
         1: .line 3145
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 12
         3: .line 3146
      StackMap locals: java.util.List int
      StackMap stack:
            aload 1 /* cases */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.CaseNode
            astore 3 /* caseNode */
        start local 3 // com.oracle.js.parser.ir.CaseNode caseNode
         4: .line 3147
            aload 3 /* caseNode */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getStatements:()Ljava/util/List;
            astore 4 /* statements */
        start local 4 // java.util.List statements
         5: .line 3148
            aload 4 /* statements */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 8
         6: .line 3150
            aload 3 /* caseNode */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            ifnonnull 11
         7: .line 3153
            iconst_0
            ireturn
         8: .line 3158
      StackMap locals: com.oracle.js.parser.ir.CaseNode java.util.List
      StackMap stack:
            aload 4 /* statements */
            aload 4 /* statements */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Statement
            astore 5 /* lastStatement */
        start local 5 // com.oracle.js.parser.ir.Statement lastStatement
         9: .line 3159
            aload 5 /* lastStatement */
            invokevirtual com.oracle.js.parser.ir.Statement.hasTerminalFlags:()Z
            ifne 11
        10: .line 3160
            iconst_0
            ireturn
        end local 5 // com.oracle.js.parser.ir.Statement lastStatement
        end local 4 // java.util.List statements
        end local 3 // com.oracle.js.parser.ir.CaseNode caseNode
        11: .line 3145
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 1 /* cases */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmplt 3
        end local 2 // int i
        13: .line 3163
            iconst_1
            ireturn
        end local 1 // java.util.List cases
        end local 0 // com.oracle.js.parser.ir.SwitchNode switchNode
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0     switchNode  Lcom/oracle/js/parser/ir/SwitchNode;
            1   14     1          cases  Ljava/util/List<Lcom/oracle/js/parser/ir/CaseNode;>;
            2   13     2              i  I
            4   11     3       caseNode  Lcom/oracle/js/parser/ir/CaseNode;
            5   11     4     statements  Ljava/util/List<Lcom/oracle/js/parser/ir/Statement;>;
            9   11     5  lastStatement  Lcom/oracle/js/parser/ir/Statement;
    MethodParameters:
            Name  Flags
      switchNode  

  private static boolean isSwitchTypeofStringConstant(com.oracle.js.parser.ir.SwitchNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/js/parser/ir/SwitchNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=5, args_size=2
        start local 0 // com.oracle.js.parser.ir.SwitchNode switchNode
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode switchExpression
         0: .line 3171
            aload 1 /* switchExpression */
            instanceof com.oracle.truffle.js.nodes.unary.TypeOfNode
            ifne 2
         1: .line 3172
            iconst_0
            ireturn
         2: .line 3174
      StackMap locals:
      StackMap stack:
            aload 0 /* switchNode */
            invokevirtual com.oracle.js.parser.ir.SwitchNode.getCases:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.nodes.JavaScriptNode top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.CaseNode
            astore 2 /* switchCase */
        start local 2 // com.oracle.js.parser.ir.CaseNode switchCase
         4: .line 3175
            aload 2 /* switchCase */
            invokevirtual com.oracle.js.parser.ir.CaseNode.getTest:()Lcom/oracle/js/parser/ir/Expression;
            astore 4 /* test */
        start local 4 // com.oracle.js.parser.ir.Node test
         5: .line 3176
            aload 4 /* test */
            ifnull 7
            aload 4 /* test */
            instanceof com.oracle.js.parser.ir.LiteralNode
            ifeq 6
            aload 4 /* test */
            checkcast com.oracle.js.parser.ir.LiteralNode
            invokevirtual com.oracle.js.parser.ir.LiteralNode.getValue:()Ljava/lang/Object;
            instanceof java.lang.String
            ifne 7
         6: .line 3177
      StackMap locals: com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.js.parser.ir.CaseNode java.util.Iterator com.oracle.js.parser.ir.Node
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // com.oracle.js.parser.ir.Node test
        end local 2 // com.oracle.js.parser.ir.CaseNode switchCase
         7: .line 3174
      StackMap locals: com.oracle.js.parser.ir.SwitchNode com.oracle.truffle.js.nodes.JavaScriptNode top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 3180
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode switchExpression
        end local 0 // com.oracle.js.parser.ir.SwitchNode switchNode
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0        switchNode  Lcom/oracle/js/parser/ir/SwitchNode;
            0    9     1  switchExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4    7     2        switchCase  Lcom/oracle/js/parser/ir/CaseNode;
            5    7     4              test  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
                  Name  Flags
      switchNode        
      switchExpression  

  private com.oracle.truffle.js.nodes.JavaScriptNode discardResult(com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode test
         0: .line 3184
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.returnsLastStatementResult:()Z
            ifeq 2
         1: .line 3185
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            iconst_1
            anewarray com.oracle.truffle.js.nodes.JavaScriptNode
            dup
            iconst_0
            aload 1 /* test */
            aastore
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createVoidBlock:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
         2: .line 3187
      StackMap locals:
      StackMap stack:
            aload 1 /* test */
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode test
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  test  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      test  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterEmptyNode(com.oracle.js.parser.ir.EmptyNode);
    descriptor: (Lcom/oracle/js/parser/ir/EmptyNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.EmptyNode emptyNode
         0: .line 3192
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createEmpty:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.EmptyNode emptyNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  emptyNode  Lcom/oracle/js/parser/ir/EmptyNode;
    MethodParameters:
           Name  Flags
      emptyNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterWithNode(com.oracle.js.parser.ir.WithNode);
    descriptor: (Lcom/oracle/js/parser/ir/WithNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.WithNode withNode
         0: .line 3197
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionDisableWith:()Z
            ifeq 2
         1: .line 3198
            ldc "with statement is disabled."
            invokestatic com.oracle.truffle.js.runtime.Errors.createSyntaxError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 3200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* withNode */
            invokevirtual com.oracle.js.parser.ir.WithNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* withExpression */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode withExpression
         3: .line 3201
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* withExpression */
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createToObjectFromWith:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* toObject */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode toObject
         4: .line 3202
            aload 0 /* this */
            aload 1 /* withNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.makeUniqueTempVarNameForStatement:(Lcom/oracle/js/parser/ir/Statement;)Ljava/lang/String;
            astore 4 /* withVarName */
        start local 4 // java.lang.String withVarName
         5: .line 3203
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 4 /* withVarName */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.declareLocalVar:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            pop
         6: .line 3204
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 4 /* withVarName */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 3 /* toObject */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 5 /* writeWith */
        start local 5 // com.oracle.truffle.js.nodes.JavaScriptNode writeWith
         7: .line 3205
            aconst_null
            astore 6
            aconst_null
            astore 7
         8: aload 0 /* this */
            aload 4 /* withVarName */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterWithEnvironment:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            astore 8 /* withEnv */
        start local 8 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable withEnv
         9: .line 3206
            aload 0 /* this */
            aload 1 /* withNode */
            invokevirtual com.oracle.js.parser.ir.WithNode.getBody:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* withBody */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode withBody
        10: .line 3207
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 5 /* writeWith */
            aload 0 /* this */
            aload 9 /* withBody */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.wrapClearAndGetCompletionValue:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createWith:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* withNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        11: .line 3208
            aload 8 /* withEnv */
            ifnull 12
            aload 8 /* withEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        12: .line 3207
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.WithNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
            areturn
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode withBody
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.WithNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        13: astore 6
        14: .line 3208
            aload 8 /* withEnv */
            ifnull 15
            aload 8 /* withEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 8 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable withEnv
      StackMap locals:
      StackMap stack:
        15: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 7
            aload 6
            ifnonnull 17
            aload 7
            astore 6
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 6
            aload 7
            if_acmpeq 18
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 6
            athrow
        end local 5 // com.oracle.truffle.js.nodes.JavaScriptNode writeWith
        end local 4 // java.lang.String withVarName
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode toObject
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode withExpression
        end local 1 // com.oracle.js.parser.ir.WithNode withNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   19     1        withNode  Lcom/oracle/js/parser/ir/WithNode;
            3   19     2  withExpression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4   19     3        toObject  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            5   19     4     withVarName  Ljava/lang/String;
            7   19     5       writeWith  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   15     8         withEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
           10   13     9        withBody  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
           9    11      13  any
           8    12      16  any
          13    16      16  any
    MethodParameters:
          Name  Flags
      withNode  

  private com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable enterWithEnvironment(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // java.lang.String withVarName
         0: .line 3212
            new com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
            dup
            aload 0 /* this */
            new com.oracle.truffle.js.parser.env.WithEnvironment
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* withVarName */
            invokespecial com.oracle.truffle.js.parser.env.WithEnvironment.<init>:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/truffle/js/nodes/NodeFactory;Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;)V
            invokespecial com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.<init>:(Lcom/oracle/truffle/js/parser/GraalJSTranslator;Lcom/oracle/truffle/js/parser/env/Environment;)V
            areturn
        end local 1 // java.lang.String withVarName
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  withVarName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      withVarName  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterRuntimeNode(com.oracle.js.parser.ir.RuntimeNode);
    descriptor: (Lcom/oracle/js/parser/ir/RuntimeNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.RuntimeNode runtimeNode
         0: .line 3217
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getRequest:()Lcom/oracle/js/parser/ir/RuntimeNode$Request;
            getstatic com.oracle.js.parser.ir.RuntimeNode$Request.REFERENCE_ERROR:Lcom/oracle/js/parser/ir/RuntimeNode$Request;
            if_acmpne 3
         1: .line 3218
            ldc "parser.error.invalid.lvalue"
            iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.js.parser.ECMAErrors.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         2: .line 3219
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            getstatic com.oracle.truffle.js.runtime.JSErrorType.ReferenceError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 2 /* msg */
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getToken:()J
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.lc:Lcom/oracle/js/parser/ir/LexicalContext;
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.error:(Ljava/lang/String;JLcom/oracle/js/parser/ir/LexicalContext;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createThrowError:(Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // java.lang.String msg
         3: .line 3220
      StackMap locals:
      StackMap stack:
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getRequest:()Lcom/oracle/js/parser/ir/RuntimeNode$Request;
            getstatic com.oracle.js.parser.ir.RuntimeNode$Request.GET_TEMPLATE_OBJECT:Lcom/oracle/js/parser/ir/RuntimeNode$Request;
            if_acmpne 7
         4: .line 3221
            aload 0 /* this */
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Node
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* rawStrings */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode rawStrings
         5: .line 3222
            aload 0 /* this */
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getArgs:()Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Node
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* cookedStrings */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode cookedStrings
         6: .line 3223
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* rawStrings */
            aload 3 /* cookedStrings */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createTemplateObject:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode cookedStrings
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode rawStrings
         7: .line 3224
      StackMap locals:
      StackMap stack:
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getRequest:()Lcom/oracle/js/parser/ir/RuntimeNode$Request;
            getstatic com.oracle.js.parser.ir.RuntimeNode$Request.TO_STRING:Lcom/oracle/js/parser/ir/RuntimeNode$Request;
            if_acmpne 10
         8: .line 3225
            aload 0 /* this */
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.js.parser.ir.Node
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* value */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode value
         9: .line 3226
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* value */
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createToString:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode value
        10: .line 3228
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            aload 1 /* runtimeNode */
            invokevirtual com.oracle.js.parser.ir.RuntimeNode.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.js.parser.ir.RuntimeNode runtimeNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   11     1    runtimeNode  Lcom/oracle/js/parser/ir/RuntimeNode;
            2    3     2            msg  Ljava/lang/String;
            5    7     2     rawStrings  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            6    7     3  cookedStrings  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   10     2          value  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
             Name  Flags
      runtimeNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterDebuggerNode(com.oracle.js.parser.ir.DebuggerNode);
    descriptor: (Lcom/oracle/js/parser/ir/DebuggerNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.DebuggerNode debuggerNode
         0: .line 3233
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createDebugger:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* debuggerNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.DebuggerNode debuggerNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  debuggerNode  Lcom/oracle/js/parser/ir/DebuggerNode;
    MethodParameters:
              Name  Flags
      debuggerNode  

  protected static java.lang.String error(java.lang.String, long, com.oracle.js.parser.ir.LexicalContext);
    descriptor: (Ljava/lang/String;JLcom/oracle/js/parser/ir/LexicalContext;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // java.lang.String message
        start local 1 // long errorToken
        start local 3 // com.oracle.js.parser.ir.LexicalContext lc
         0: .line 3237
            lload 1 /* errorToken */
            invokestatic com.oracle.js.parser.Token.descPosition:(J)I
            istore 4 /* position */
        start local 4 // int position
         1: .line 3238
            aload 3 /* lc */
            invokevirtual com.oracle.js.parser.ir.LexicalContext.getCurrentFunction:()Lcom/oracle/js/parser/ir/FunctionNode;
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getSource:()Lcom/oracle/js/parser/Source;
            astore 5 /* internalSource */
        start local 5 // com.oracle.js.parser.Source internalSource
         2: .line 3239
            aload 5 /* internalSource */
            iload 4 /* position */
            invokevirtual com.oracle.js.parser.Source.getLine:(I)I
            istore 6 /* lineNum */
        start local 6 // int lineNum
         3: .line 3240
            aload 5 /* internalSource */
            iload 4 /* position */
            invokevirtual com.oracle.js.parser.Source.getColumn:(I)I
            istore 7 /* columnNum */
        start local 7 // int columnNum
         4: .line 3241
            aload 0 /* message */
            aload 5 /* internalSource */
            iload 6 /* lineNum */
            iload 7 /* columnNum */
            lload 1 /* errorToken */
            invokestatic com.oracle.js.parser.ErrorManager.format:(Ljava/lang/String;Lcom/oracle/js/parser/Source;IIJ)Ljava/lang/String;
            astore 8 /* formatted */
        start local 8 // java.lang.String formatted
         5: .line 3242
            aload 8 /* formatted */
            ldc "\r\n"
            ldc "\n"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 8 // java.lang.String formatted
        end local 7 // int columnNum
        end local 6 // int lineNum
        end local 5 // com.oracle.js.parser.Source internalSource
        end local 4 // int position
        end local 3 // com.oracle.js.parser.ir.LexicalContext lc
        end local 1 // long errorToken
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0         message  Ljava/lang/String;
            0    6     1      errorToken  J
            0    6     3              lc  Lcom/oracle/js/parser/ir/LexicalContext;
            1    6     4        position  I
            2    6     5  internalSource  Lcom/oracle/js/parser/Source;
            3    6     6         lineNum  I
            4    6     7       columnNum  I
            5    6     8       formatted  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      message     final
      errorToken  final
      lc          final

  public com.oracle.truffle.js.nodes.JavaScriptNode enterExpressionStatement(com.oracle.js.parser.ir.ExpressionStatement);
    descriptor: (Lcom/oracle/js/parser/ir/ExpressionStatement;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ExpressionStatement expressionStatement
         0: .line 3247
            aload 0 /* this */
            aload 1 /* expressionStatement */
            invokevirtual com.oracle.js.parser.ir.ExpressionStatement.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* expression */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
         1: .line 3248
            aload 0 /* this */
            aload 2 /* expression */
            aload 1 /* expressionStatement */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagStatement:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode expression
        end local 1 // com.oracle.js.parser.ir.ExpressionStatement expressionStatement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    2     1  expressionStatement  Lcom/oracle/js/parser/ir/ExpressionStatement;
            1    2     2           expression  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                     Name  Flags
      expressionStatement  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterJoinPredecessorExpression(com.oracle.js.parser.ir.JoinPredecessorExpression);
    descriptor: (Lcom/oracle/js/parser/ir/JoinPredecessorExpression;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.JoinPredecessorExpression expr
         0: .line 3253
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* expr */
            invokevirtual com.oracle.js.parser.ir.JoinPredecessorExpression.getExpression:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* expr */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.JoinPredecessorExpression expr
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  expr  Lcom/oracle/js/parser/ir/JoinPredecessorExpression;
    MethodParameters:
      Name  Flags
      expr  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterClassNode(com.oracle.js.parser.ir.ClassNode);
    descriptor: (Lcom/oracle/js/parser/ir/ClassNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=13, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ClassNode classNode
         0: .line 3258
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getScope:()Lcom/oracle/js/parser/ir/Scope;
            astore 2 /* classScope */
        start local 2 // com.oracle.js.parser.ir.Scope classScope
         1: .line 3259
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: aload 0 /* this */
            aload 2 /* classScope */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockEnvironment:(Lcom/oracle/js/parser/ir/Scope;)Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            astore 5 /* blockEnv */
        start local 5 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
         3: .line 3260
            aconst_null
            astore 6 /* className */
        start local 6 // java.lang.String className
         4: .line 3261
            aconst_null
            astore 7 /* classNameSymbol */
        start local 7 // com.oracle.js.parser.ir.Symbol classNameSymbol
         5: .line 3262
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getIdent:()Lcom/oracle/js/parser/ir/IdentNode;
            ifnull 8
         6: .line 3263
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getIdent:()Lcom/oracle/js/parser/ir/IdentNode;
            invokevirtual com.oracle.js.parser.ir.IdentNode.getName:()Ljava/lang/String;
            astore 6 /* className */
         7: .line 3264
            aload 2 /* classScope */
            aload 6 /* className */
            invokevirtual com.oracle.js.parser.ir.Scope.getExistingSymbol:(Ljava/lang/String;)Lcom/oracle/js/parser/ir/Symbol;
            astore 7 /* classNameSymbol */
         8: .line 3267
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ClassNode com.oracle.js.parser.ir.Scope java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable java.lang.String com.oracle.js.parser.ir.Symbol
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getClassHeritage:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8 /* classHeritage */
        start local 8 // com.oracle.truffle.js.nodes.JavaScriptNode classHeritage
         9: .line 3268
            aload 0 /* this */
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getConstructor:()Lcom/oracle/js/parser/ir/PropertyNode;
            invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 9 /* classFunction */
        start local 9 // com.oracle.truffle.js.nodes.JavaScriptNode classFunction
        10: .line 3270
            aload 0 /* this */
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getClassElements:()Ljava/util/List;
            iconst_1
            aload 7 /* classNameSymbol */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transformPropertyDefinitionList:(Ljava/util/List;ZLcom/oracle/js/parser/ir/Symbol;)Ljava/util/ArrayList;
            astore 10 /* members */
        start local 10 // java.util.ArrayList members
        11: .line 3272
            aload 6 /* className */
            ifnonnull 12
            aconst_null
            goto 13
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode java.util.ArrayList
      StackMap stack:
        12: aload 0 /* this */
            aload 6 /* className */
            iconst_1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.findScopeVar:(Ljava/lang/String;Z)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aconst_null
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
        13: astore 11 /* writeClassBinding */
        start local 11 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBinding
        14: .line 3274
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 9 /* classFunction */
            checkcast com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
            aload 8 /* classHeritage */
        15: .line 3275
            aload 10 /* members */
            getstatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode.EMPTY:[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode[]
            aload 11 /* writeClassBinding */
            aload 6 /* className */
        16: .line 3276
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getInstanceFieldCount:()I
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.getStaticFieldCount:()I
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.hasPrivateInstanceMethods:()Z
        17: .line 3274
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createClassDefinition:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;[Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Ljava/lang/String;IIZ)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* classDefinition */
        start local 12 // com.oracle.truffle.js.nodes.JavaScriptNode classDefinition
        18: .line 3278
            aload 1 /* classNode */
            invokevirtual com.oracle.js.parser.ir.ClassNode.hasPrivateMethods:()Z
            ifeq 20
        19: .line 3280
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            ldc "#constructor"
            invokevirtual com.oracle.truffle.js.parser.env.Environment.findLocalVar:(Ljava/lang/String;)Lcom/oracle/truffle/js/parser/env/Environment$VarRef;
            aload 12 /* classDefinition */
            invokevirtual com.oracle.truffle.js.parser.env.Environment$VarRef.createWriteNode:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 12 /* classDefinition */
        20: .line 3283
      StackMap locals: com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 5 /* blockEnv */
            aload 12 /* classDefinition */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.wrapBlockScope:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* classNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
        21: .line 3284
            aload 5 /* blockEnv */
            ifnull 22
            aload 5 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        22: .line 3283
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
            areturn
        end local 12 // com.oracle.truffle.js.nodes.JavaScriptNode classDefinition
        end local 11 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeClassBinding
        end local 10 // java.util.ArrayList members
        end local 9 // com.oracle.truffle.js.nodes.JavaScriptNode classFunction
        end local 8 // com.oracle.truffle.js.nodes.JavaScriptNode classHeritage
        end local 7 // com.oracle.js.parser.ir.Symbol classNameSymbol
        end local 6 // java.lang.String className
      StackMap locals: com.oracle.truffle.js.parser.GraalJSTranslator com.oracle.js.parser.ir.ClassNode com.oracle.js.parser.ir.Scope java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
      StackMap stack: java.lang.Throwable
        23: astore 3
        24: .line 3284
            aload 5 /* blockEnv */
            ifnull 25
            aload 5 /* blockEnv */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable.close:()V
        end local 5 // com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable blockEnv
      StackMap locals:
      StackMap stack:
        25: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 4
            aload 3
            ifnonnull 27
            aload 4
            astore 3
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 3
            aload 4
            if_acmpeq 28
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 3
            athrow
        end local 2 // com.oracle.js.parser.ir.Scope classScope
        end local 1 // com.oracle.js.parser.ir.ClassNode classNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0               this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   29     1          classNode  Lcom/oracle/js/parser/ir/ClassNode;
            1   29     2         classScope  Lcom/oracle/js/parser/ir/Scope;
            3   25     5           blockEnv  Lcom/oracle/truffle/js/parser/GraalJSTranslator$EnvironmentCloseable;
            4   23     6          className  Ljava/lang/String;
            5   23     7    classNameSymbol  Lcom/oracle/js/parser/ir/Symbol;
            9   23     8      classHeritage  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           10   23     9      classFunction  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           11   23    10            members  Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;>;
           14   23    11  writeClassBinding  Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
           18   23    12    classDefinition  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      Exception table:
        from    to  target  type
           3    21      23  any
           2    22      26  any
          23    26      26  any
    MethodParameters:
           Name  Flags
      classNode  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterBlockExpression(com.oracle.js.parser.ir.BlockExpression);
    descriptor: (Lcom/oracle/js/parser/ir/BlockExpression;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.BlockExpression blockExpression
         0: .line 3289
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* blockExpression */
            invokevirtual com.oracle.js.parser.ir.BlockExpression.getBlock:()Lcom/oracle/js/parser/ir/Block;
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.transform:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* blockExpression */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // com.oracle.js.parser.ir.BlockExpression blockExpression
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  blockExpression  Lcom/oracle/js/parser/ir/BlockExpression;
    MethodParameters:
                 Name  Flags
      blockExpression  

  public com.oracle.truffle.js.nodes.JavaScriptNode enterParameterNode(com.oracle.js.parser.ir.ParameterNode);
    descriptor: (Lcom/oracle/js/parser/ir/ParameterNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.ParameterNode paramNode
         0: .line 3294
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.currentFunction:()Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            astore 2 /* currentFunction */
        start local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
         1: .line 3296
            aload 1 /* paramNode */
            invokevirtual com.oracle.js.parser.ir.ParameterNode.isRestParameter:()Z
            ifeq 4
         2: .line 3297
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getLeadingArgumentCount:()I
            aload 1 /* paramNode */
            invokevirtual com.oracle.js.parser.ir.ParameterNode.getIndex:()I
            iadd
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getTrailingArgumentCount:()I
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessRestArgument:(Lcom/oracle/truffle/js/runtime/JSContext;II)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* valueNode */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
         3: .line 3298
            goto 5
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
         4: .line 3299
      StackMap locals: com.oracle.truffle.js.parser.env.FunctionEnvironment
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.factory:Lcom/oracle/truffle/js/nodes/NodeFactory;
            aload 2 /* currentFunction */
            invokevirtual com.oracle.truffle.js.parser.env.FunctionEnvironment.getLeadingArgumentCount:()I
            aload 1 /* paramNode */
            invokevirtual com.oracle.js.parser.ir.ParameterNode.getIndex:()I
            iadd
            invokevirtual com.oracle.truffle.js.nodes.NodeFactory.createAccessArgument:(I)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* valueNode */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
         5: .line 3301
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* valueNode */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.tagHiddenExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* paramNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.tagExpression:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        end local 2 // com.oracle.truffle.js.parser.env.FunctionEnvironment currentFunction
        end local 1 // com.oracle.js.parser.ir.ParameterNode paramNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    6     1        paramNode  Lcom/oracle/js/parser/ir/ParameterNode;
            1    6     2  currentFunction  Lcom/oracle/truffle/js/parser/env/FunctionEnvironment;
            3    4     3        valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            5    6     3        valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      paramNode  

  protected com.oracle.truffle.js.nodes.JavaScriptNode enterDefault(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Node node
         0: .line 3308
            aload 1 /* node */
            invokestatic com.oracle.truffle.js.parser.GraalJSTranslator.shouldNotReachHere:(Lcom/oracle/js/parser/ir/Node;)Ljava/lang/AssertionError;
            athrow
        end local 1 // com.oracle.js.parser.ir.Node node
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    1     1  node  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
      Name  Flags
      node  

  private static java.lang.AssertionError shouldNotReachHere(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)Ljava/lang/AssertionError;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.oracle.js.parser.ir.Node node
         0: .line 3312
            new java.lang.AssertionError
            dup
            ldc "should not reach here. %s(%s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* node */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // com.oracle.js.parser.ir.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
      Name  Flags
      node  

  private com.oracle.truffle.api.source.SourceSection createSourceSection(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
         0: .line 3318
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getStartWithoutParens:()I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.prologLength:I
            isub
            istore 2 /* start */
        start local 2 // int start
         1: .line 3319
            aload 1 /* functionNode */
            invokevirtual com.oracle.js.parser.ir.FunctionNode.getFinishWithoutParens:()I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.prologLength:I
            isub
            istore 3 /* finish */
        start local 3 // int finish
         2: .line 3320
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.sourceLength:I
            istore 4 /* length */
        start local 4 // int length
         3: .line 3321
            iload 3 /* finish */
            ifle 4
            iload 4 /* length */
            iload 2 /* start */
            if_icmpgt 5
         4: .line 3322
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.source:Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.createUnavailableSection:()Lcom/oracle/truffle/api/source/SourceSection;
            areturn
         5: .line 3324
      StackMap locals:
      StackMap stack:
            iconst_0
            iload 2 /* start */
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* start */
         6: .line 3325
            iload 4 /* length */
            iload 3 /* finish */
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* finish */
         7: .line 3326
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.source:Lcom/oracle/truffle/api/source/Source;
            iload 2 /* start */
            iload 3 /* finish */
            iload 2 /* start */
            isub
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 4 // int length
        end local 3 // int finish
        end local 2 // int start
        end local 1 // com.oracle.js.parser.ir.FunctionNode functionNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    8     1  functionNode  Lcom/oracle/js/parser/ir/FunctionNode;
            1    8     2         start  I
            2    8     3        finish  I
            3    8     4        length  I
    MethodParameters:
              Name  Flags
      functionNode  

  private com.oracle.truffle.js.nodes.JavaScriptNode ensureHasSourceSection(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        start local 2 // com.oracle.js.parser.ir.Node parseNode
         0: .line 3331
            aload 1 /* resultNode */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifne 4
         1: .line 3332
            aload 0 /* this */
            aload 1 /* resultNode */
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.assignSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)V
         2: .line 3333
            aload 1 /* resultNode */
            instanceof com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            ifeq 4
         3: .line 3334
            aload 0 /* this */
            aload 1 /* resultNode */
            checkcast com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalScopeVarWrapperNode.getDelegateNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 2 /* parseNode */
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.ensureHasSourceSection:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            pop
         4: .line 3337
      StackMap locals:
      StackMap stack:
            aload 1 /* resultNode */
            areturn
        end local 2 // com.oracle.js.parser.ir.Node parseNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5     1  resultNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    5     2   parseNode  Lcom/oracle/js/parser/ir/Node;
    MethodParameters:
            Name  Flags
      resultNode  
      parseNode   

  private void assignSourceSection(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/js/parser/ir/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        start local 2 // com.oracle.js.parser.ir.Node parseNode
         0: .line 3341
            aload 2 /* parseNode */
            invokevirtual com.oracle.js.parser.ir.Node.getStart:()I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.prologLength:I
            isub
            istore 3 /* start */
        start local 3 // int start
         1: .line 3342
            aload 2 /* parseNode */
            invokevirtual com.oracle.js.parser.ir.Node.getFinish:()I
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.prologLength:I
            isub
            istore 4 /* finish */
        start local 4 // int finish
         2: .line 3343
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.sourceLength:I
            istore 5 /* length */
        start local 5 // int length
         3: .line 3344
            iload 4 /* finish */
            ifle 4
            iload 5 /* length */
            iload 3 /* start */
            if_icmpgt 6
         4: .line 3345
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* resultNode */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.source:Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.createUnavailableSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.setSourceSection:(Lcom/oracle/truffle/api/source/SourceSection;)V
         5: .line 3346
            goto 9
         6: .line 3347
      StackMap locals:
      StackMap stack:
            iconst_0
            iload 3 /* start */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* start */
         7: .line 3348
            iload 5 /* length */
            iload 4 /* finish */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* finish */
         8: .line 3349
            aload 1 /* resultNode */
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.source:Lcom/oracle/truffle/api/source/Source;
            iload 3 /* start */
            iload 4 /* finish */
            iload 3 /* start */
            isub
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.setSourceSection:(Lcom/oracle/truffle/api/source/Source;II)V
         9: .line 3351
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int length
        end local 4 // int finish
        end local 3 // int start
        end local 2 // com.oracle.js.parser.ir.Node parseNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode resultNode
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0   10     1  resultNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   10     2   parseNode  Lcom/oracle/js/parser/ir/Node;
            1   10     3       start  I
            2   10     4      finish  I
            3   10     5      length  I
    MethodParameters:
            Name  Flags
      resultNode  
      parseNode   

  private java.lang.String makeUniqueTempVarNameForStatement(com.oracle.js.parser.ir.Statement);
    descriptor: (Lcom/oracle/js/parser/ir/Statement;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 1 // com.oracle.js.parser.ir.Statement statement
         0: .line 3354
            new java.lang.StringBuilder
            dup
            bipush 58
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* statement */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* statement */
            invokevirtual com.oracle.js.parser.ir.Statement.getLineNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* statement */
            invokevirtual com.oracle.js.parser.ir.Statement.getStart:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 3355
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.parser.GraalJSTranslator.environment:Lcom/oracle/truffle/js/parser/env/Environment;
            aload 2 /* name */
            invokevirtual com.oracle.truffle.js.parser.env.Environment.hasLocalVar:(Ljava/lang/String;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 3356
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* name */
            areturn
        end local 2 // java.lang.String name
        end local 1 // com.oracle.js.parser.ir.Statement statement
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    3     1  statement  Lcom/oracle/js/parser/ir/Statement;
            1    3     2       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      statement  

  public java.lang.Object enterContinueNode(com.oracle.js.parser.ir.ContinueNode);
    descriptor: (Lcom/oracle/js/parser/ir/ContinueNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterContinueNode:(Lcom/oracle/js/parser/ir/ContinueNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterLiteralNode(com.oracle.js.parser.ir.LiteralNode);
    descriptor: (Lcom/oracle/js/parser/ir/LiteralNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterLiteralNode:(Lcom/oracle/js/parser/ir/LiteralNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterReturnNode(com.oracle.js.parser.ir.ReturnNode);
    descriptor: (Lcom/oracle/js/parser/ir/ReturnNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterReturnNode:(Lcom/oracle/js/parser/ir/ReturnNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterLabelNode(com.oracle.js.parser.ir.LabelNode);
    descriptor: (Lcom/oracle/js/parser/ir/LabelNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterLabelNode:(Lcom/oracle/js/parser/ir/LabelNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterRuntimeNode(com.oracle.js.parser.ir.RuntimeNode);
    descriptor: (Lcom/oracle/js/parser/ir/RuntimeNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterRuntimeNode:(Lcom/oracle/js/parser/ir/RuntimeNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterSwitchNode(com.oracle.js.parser.ir.SwitchNode);
    descriptor: (Lcom/oracle/js/parser/ir/SwitchNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterSwitchNode:(Lcom/oracle/js/parser/ir/SwitchNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterBlockStatement(com.oracle.js.parser.ir.BlockStatement);
    descriptor: (Lcom/oracle/js/parser/ir/BlockStatement;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockStatement:(Lcom/oracle/js/parser/ir/BlockStatement;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterThrowNode(com.oracle.js.parser.ir.ThrowNode);
    descriptor: (Lcom/oracle/js/parser/ir/ThrowNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterThrowNode:(Lcom/oracle/js/parser/ir/ThrowNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterCallNode(com.oracle.js.parser.ir.CallNode);
    descriptor: (Lcom/oracle/js/parser/ir/CallNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterCallNode:(Lcom/oracle/js/parser/ir/CallNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterVarNode(com.oracle.js.parser.ir.VarNode);
    descriptor: (Lcom/oracle/js/parser/ir/VarNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterVarNode:(Lcom/oracle/js/parser/ir/VarNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterParameterNode(com.oracle.js.parser.ir.ParameterNode);
    descriptor: (Lcom/oracle/js/parser/ir/ParameterNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterParameterNode:(Lcom/oracle/js/parser/ir/ParameterNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterForNode(com.oracle.js.parser.ir.ForNode);
    descriptor: (Lcom/oracle/js/parser/ir/ForNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterForNode:(Lcom/oracle/js/parser/ir/ForNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterBinaryNode(com.oracle.js.parser.ir.BinaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/BinaryNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBinaryNode:(Lcom/oracle/js/parser/ir/BinaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterObjectNode(com.oracle.js.parser.ir.ObjectNode);
    descriptor: (Lcom/oracle/js/parser/ir/ObjectNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterObjectNode:(Lcom/oracle/js/parser/ir/ObjectNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterExpressionStatement(com.oracle.js.parser.ir.ExpressionStatement);
    descriptor: (Lcom/oracle/js/parser/ir/ExpressionStatement;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterExpressionStatement:(Lcom/oracle/js/parser/ir/ExpressionStatement;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterEmptyNode(com.oracle.js.parser.ir.EmptyNode);
    descriptor: (Lcom/oracle/js/parser/ir/EmptyNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterEmptyNode:(Lcom/oracle/js/parser/ir/EmptyNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterIfNode(com.oracle.js.parser.ir.IfNode);
    descriptor: (Lcom/oracle/js/parser/ir/IfNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterIfNode:(Lcom/oracle/js/parser/ir/IfNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterTryNode(com.oracle.js.parser.ir.TryNode);
    descriptor: (Lcom/oracle/js/parser/ir/TryNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterTryNode:(Lcom/oracle/js/parser/ir/TryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterDebuggerNode(com.oracle.js.parser.ir.DebuggerNode);
    descriptor: (Lcom/oracle/js/parser/ir/DebuggerNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterDebuggerNode:(Lcom/oracle/js/parser/ir/DebuggerNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterWithNode(com.oracle.js.parser.ir.WithNode);
    descriptor: (Lcom/oracle/js/parser/ir/WithNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterWithNode:(Lcom/oracle/js/parser/ir/WithNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterTernaryNode(com.oracle.js.parser.ir.TernaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/TernaryNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterTernaryNode:(Lcom/oracle/js/parser/ir/TernaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterFunctionNode(com.oracle.js.parser.ir.FunctionNode);
    descriptor: (Lcom/oracle/js/parser/ir/FunctionNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterFunctionNode:(Lcom/oracle/js/parser/ir/FunctionNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterBlockExpression(com.oracle.js.parser.ir.BlockExpression);
    descriptor: (Lcom/oracle/js/parser/ir/BlockExpression;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlockExpression:(Lcom/oracle/js/parser/ir/BlockExpression;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterUnaryNode(com.oracle.js.parser.ir.UnaryNode);
    descriptor: (Lcom/oracle/js/parser/ir/UnaryNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterUnaryNode:(Lcom/oracle/js/parser/ir/UnaryNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterWhileNode(com.oracle.js.parser.ir.WhileNode);
    descriptor: (Lcom/oracle/js/parser/ir/WhileNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterWhileNode:(Lcom/oracle/js/parser/ir/WhileNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterIndexNode(com.oracle.js.parser.ir.IndexNode);
    descriptor: (Lcom/oracle/js/parser/ir/IndexNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterIndexNode:(Lcom/oracle/js/parser/ir/IndexNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterBlock(com.oracle.js.parser.ir.Block);
    descriptor: (Lcom/oracle/js/parser/ir/Block;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBlock:(Lcom/oracle/js/parser/ir/Block;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterIdentNode(com.oracle.js.parser.ir.IdentNode);
    descriptor: (Lcom/oracle/js/parser/ir/IdentNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterIdentNode:(Lcom/oracle/js/parser/ir/IdentNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterAccessNode(com.oracle.js.parser.ir.AccessNode);
    descriptor: (Lcom/oracle/js/parser/ir/AccessNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterAccessNode:(Lcom/oracle/js/parser/ir/AccessNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterClassNode(com.oracle.js.parser.ir.ClassNode);
    descriptor: (Lcom/oracle/js/parser/ir/ClassNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterClassNode:(Lcom/oracle/js/parser/ir/ClassNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterBreakNode(com.oracle.js.parser.ir.BreakNode);
    descriptor: (Lcom/oracle/js/parser/ir/BreakNode;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterBreakNode:(Lcom/oracle/js/parser/ir/BreakNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object enterDefault(com.oracle.js.parser.ir.Node);
    descriptor: (Lcom/oracle/js/parser/ir/Node;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterDefault:(Lcom/oracle/js/parser/ir/Node;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object enterJoinPredecessorExpression(com.oracle.js.parser.ir.JoinPredecessorExpression);
    descriptor: (Lcom/oracle/js/parser/ir/JoinPredecessorExpression;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.enterJoinPredecessorExpression:(Lcom/oracle/js/parser/ir/JoinPredecessorExpression;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$com$oracle$js$parser$TokenType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 182
            getstatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.js.parser.TokenType.values:()[Lcom/oracle/js/parser/TokenType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.js.parser.TokenType.ADD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 21
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.js.parser.TokenType.AND:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 12
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.js.parser.TokenType.ARRAY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 130
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.js.parser.TokenType.ARROW:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 40
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.js.parser.TokenType.AS:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 63
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 37
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_ADD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 23
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_AND:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 14
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_BIT_AND:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 13
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_BIT_OR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 54
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_BIT_XOR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 51
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_DIV:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 30
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_EXP:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 20
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_INIT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 143
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_MOD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 10
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_MUL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 18
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_NULLCOAL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 61
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_OR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 56
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_SAR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 44
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_SHL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 35
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_SHR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 46
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic com.oracle.js.parser.TokenType.ASSIGN_SUB:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 27
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic com.oracle.js.parser.TokenType.ASYNC:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 64
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic com.oracle.js.parser.TokenType.AWAIT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 65
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic com.oracle.js.parser.TokenType.BIGINT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 121
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            getstatic com.oracle.js.parser.TokenType.BINARY_NUMBER:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 120
            iastore
        78: goto 80
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        79: pop
      StackMap locals:
      StackMap stack:
        80: aload 0
            getstatic com.oracle.js.parser.TokenType.BIT_AND:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 11
            iastore
        81: goto 83
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        82: pop
      StackMap locals:
      StackMap stack:
        83: aload 0
            getstatic com.oracle.js.parser.TokenType.BIT_NOT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 58
            iastore
        84: goto 86
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        85: pop
      StackMap locals:
      StackMap stack:
        86: aload 0
            getstatic com.oracle.js.parser.TokenType.BIT_OR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 53
            iastore
        87: goto 89
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        88: pop
      StackMap locals:
      StackMap stack:
        89: aload 0
            getstatic com.oracle.js.parser.TokenType.BIT_XOR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 50
            iastore
        90: goto 92
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        91: pop
      StackMap locals:
      StackMap stack:
        92: aload 0
            getstatic com.oracle.js.parser.TokenType.BREAK:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 66
            iastore
        93: goto 95
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        94: pop
      StackMap locals:
      StackMap stack:
        95: aload 0
            getstatic com.oracle.js.parser.TokenType.CASE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 67
            iastore
        96: goto 98
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        97: pop
      StackMap locals:
      StackMap stack:
        98: aload 0
            getstatic com.oracle.js.parser.TokenType.CATCH:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 68
            iastore
        99: goto 101
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       100: pop
      StackMap locals:
      StackMap stack:
       101: aload 0
            getstatic com.oracle.js.parser.TokenType.CLASS:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 69
            iastore
       102: goto 104
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       103: pop
      StackMap locals:
      StackMap stack:
       104: aload 0
            getstatic com.oracle.js.parser.TokenType.COLON:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 31
            iastore
       105: goto 107
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       106: pop
      StackMap locals:
      StackMap stack:
       107: aload 0
            getstatic com.oracle.js.parser.TokenType.COMMALEFT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 136
            iastore
       108: goto 110
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       109: pop
      StackMap locals:
      StackMap stack:
       110: aload 0
            getstatic com.oracle.js.parser.TokenType.COMMARIGHT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 24
            iastore
       111: goto 113
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       112: pop
      StackMap locals:
      StackMap stack:
       113: aload 0
            getstatic com.oracle.js.parser.TokenType.COMMENT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iconst_4
            iastore
       114: goto 116
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       115: pop
      StackMap locals:
      StackMap stack:
       116: aload 0
            getstatic com.oracle.js.parser.TokenType.CONST:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 70
            iastore
       117: goto 119
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       118: pop
      StackMap locals:
      StackMap stack:
       119: aload 0
            getstatic com.oracle.js.parser.TokenType.CONTINUE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 71
            iastore
       120: goto 122
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       121: pop
      StackMap locals:
      StackMap stack:
       122: aload 0
            getstatic com.oracle.js.parser.TokenType.DEBUGGER:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 72
            iastore
       123: goto 125
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       124: pop
      StackMap locals:
      StackMap stack:
       125: aload 0
            getstatic com.oracle.js.parser.TokenType.DECIMAL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 115
            iastore
       126: goto 128
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       127: pop
      StackMap locals:
      StackMap stack:
       128: aload 0
            getstatic com.oracle.js.parser.TokenType.DECPOSTFIX:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 137
            iastore
       129: goto 131
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       130: pop
      StackMap locals:
      StackMap stack:
       131: aload 0
            getstatic com.oracle.js.parser.TokenType.DECPREFIX:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 26
            iastore
       132: goto 134
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       133: pop
      StackMap locals:
      StackMap stack:
       134: aload 0
            getstatic com.oracle.js.parser.TokenType.DEFAULT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 73
            iastore
       135: goto 137
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       136: pop
      StackMap locals:
      StackMap stack:
       137: aload 0
            getstatic com.oracle.js.parser.TokenType.DELETE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 74
            iastore
       138: goto 140
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       139: pop
      StackMap locals:
      StackMap stack:
       140: aload 0
            getstatic com.oracle.js.parser.TokenType.DIRECTIVE_COMMENT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iconst_5
            iastore
       141: goto 143
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       142: pop
      StackMap locals:
      StackMap stack:
       143: aload 0
            getstatic com.oracle.js.parser.TokenType.DIV:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 29
            iastore
       144: goto 146
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       145: pop
      StackMap locals:
      StackMap stack:
       146: aload 0
            getstatic com.oracle.js.parser.TokenType.DO:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 75
            iastore
       147: goto 149
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       148: pop
      StackMap locals:
      StackMap stack:
       149: aload 0
            getstatic com.oracle.js.parser.TokenType.ELLIPSIS:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 59
            iastore
       150: goto 152
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       151: pop
      StackMap locals:
      StackMap stack:
       152: aload 0
            getstatic com.oracle.js.parser.TokenType.ELSE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 76
            iastore
       153: goto 155
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       154: pop
      StackMap locals:
      StackMap stack:
       155: aload 0
            getstatic com.oracle.js.parser.TokenType.ENUM:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 77
            iastore
       156: goto 158
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       157: pop
      StackMap locals:
      StackMap stack:
       158: aload 0
            getstatic com.oracle.js.parser.TokenType.EOF:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iconst_2
            iastore
       159: goto 161
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       160: pop
      StackMap locals:
      StackMap stack:
       161: aload 0
            getstatic com.oracle.js.parser.TokenType.EOL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iconst_3
            iastore
       162: goto 164
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       163: pop
      StackMap locals:
      StackMap stack:
       164: aload 0
            getstatic com.oracle.js.parser.TokenType.EQ:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 38
            iastore
       165: goto 167
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       166: pop
      StackMap locals:
      StackMap stack:
       167: aload 0
            getstatic com.oracle.js.parser.TokenType.EQ_STRICT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 39
            iastore
       168: goto 170
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       169: pop
      StackMap locals:
      StackMap stack:
       170: aload 0
            getstatic com.oracle.js.parser.TokenType.ERROR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            iconst_1
            iastore
       171: goto 173
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       172: pop
      StackMap locals:
      StackMap stack:
       173: aload 0
            getstatic com.oracle.js.parser.TokenType.ESCSTRING:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 124
            iastore
       174: goto 176
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       175: pop
      StackMap locals:
      StackMap stack:
       176: aload 0
            getstatic com.oracle.js.parser.TokenType.EXECSTRING:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 125
            iastore
       177: goto 179
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       178: pop
      StackMap locals:
      StackMap stack:
       179: aload 0
            getstatic com.oracle.js.parser.TokenType.EXP:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 19
            iastore
       180: goto 182
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       181: pop
      StackMap locals:
      StackMap stack:
       182: aload 0
            getstatic com.oracle.js.parser.TokenType.EXPORT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 78
            iastore
       183: goto 185
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       184: pop
      StackMap locals:
      StackMap stack:
       185: aload 0
            getstatic com.oracle.js.parser.TokenType.EXTENDS:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 79
            iastore
       186: goto 188
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       187: pop
      StackMap locals:
      StackMap stack:
       188: aload 0
            getstatic com.oracle.js.parser.TokenType.FALSE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 80
            iastore
       189: goto 191
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       190: pop
      StackMap locals:
      StackMap stack:
       191: aload 0
            getstatic com.oracle.js.parser.TokenType.FINALLY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 81
            iastore
       192: goto 194
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       193: pop
      StackMap locals:
      StackMap stack:
       194: aload 0
            getstatic com.oracle.js.parser.TokenType.FLOATING:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 122
            iastore
       195: goto 197
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       196: pop
      StackMap locals:
      StackMap stack:
       197: aload 0
            getstatic com.oracle.js.parser.TokenType.FOR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 82
            iastore
       198: goto 200
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       199: pop
      StackMap locals:
      StackMap stack:
       200: aload 0
            getstatic com.oracle.js.parser.TokenType.FROM:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 83
            iastore
       201: goto 203
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       202: pop
      StackMap locals:
      StackMap stack:
       203: aload 0
            getstatic com.oracle.js.parser.TokenType.FUNCTION:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 84
            iastore
       204: goto 206
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       205: pop
      StackMap locals:
      StackMap stack:
       206: aload 0
            getstatic com.oracle.js.parser.TokenType.GE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 42
            iastore
       207: goto 209
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       208: pop
      StackMap locals:
      StackMap stack:
       209: aload 0
            getstatic com.oracle.js.parser.TokenType.GET:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 85
            iastore
       210: goto 212
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       211: pop
      StackMap locals:
      StackMap stack:
       212: aload 0
            getstatic com.oracle.js.parser.TokenType.GT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 41
            iastore
       213: goto 215
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       214: pop
      StackMap locals:
      StackMap stack:
       215: aload 0
            getstatic com.oracle.js.parser.TokenType.HEXADECIMAL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 117
            iastore
       216: goto 218
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       217: pop
      StackMap locals:
      StackMap stack:
       218: aload 0
            getstatic com.oracle.js.parser.TokenType.IDENT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 126
            iastore
       219: goto 221
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       220: pop
      StackMap locals:
      StackMap stack:
       221: aload 0
            getstatic com.oracle.js.parser.TokenType.IF:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 86
            iastore
       222: goto 224
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       223: pop
      StackMap locals:
      StackMap stack:
       224: aload 0
            getstatic com.oracle.js.parser.TokenType.IMPLEMENTS:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 87
            iastore
       225: goto 227
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       226: pop
      StackMap locals:
      StackMap stack:
       227: aload 0
            getstatic com.oracle.js.parser.TokenType.IMPORT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 88
            iastore
       228: goto 230
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       229: pop
      StackMap locals:
      StackMap stack:
       230: aload 0
            getstatic com.oracle.js.parser.TokenType.IN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 89
            iastore
       231: goto 233
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       232: pop
      StackMap locals:
      StackMap stack:
       233: aload 0
            getstatic com.oracle.js.parser.TokenType.INCPOSTFIX:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 138
            iastore
       234: goto 236
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       235: pop
      StackMap locals:
      StackMap stack:
       236: aload 0
            getstatic com.oracle.js.parser.TokenType.INCPREFIX:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 22
            iastore
       237: goto 239
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       238: pop
      StackMap locals:
      StackMap stack:
       239: aload 0
            getstatic com.oracle.js.parser.TokenType.INSTANCEOF:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 90
            iastore
       240: goto 242
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       241: pop
      StackMap locals:
      StackMap stack:
       242: aload 0
            getstatic com.oracle.js.parser.TokenType.INTERFACE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 91
            iastore
       243: goto 245
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       244: pop
      StackMap locals:
      StackMap stack:
       245: aload 0
            getstatic com.oracle.js.parser.TokenType.LBRACE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 52
            iastore
       246: goto 248
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       247: pop
      StackMap locals:
      StackMap stack:
       248: aload 0
            getstatic com.oracle.js.parser.TokenType.LBRACKET:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 48
            iastore
       249: goto 251
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       250: pop
      StackMap locals:
      StackMap stack:
       251: aload 0
            getstatic com.oracle.js.parser.TokenType.LE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 36
            iastore
       252: goto 254
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       253: pop
      StackMap locals:
      StackMap stack:
       254: aload 0
            getstatic com.oracle.js.parser.TokenType.LET:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 92
            iastore
       255: goto 257
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       256: pop
      StackMap locals:
      StackMap stack:
       257: aload 0
            getstatic com.oracle.js.parser.TokenType.LPAREN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 15
            iastore
       258: goto 260
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       259: pop
      StackMap locals:
      StackMap stack:
       260: aload 0
            getstatic com.oracle.js.parser.TokenType.LT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 33
            iastore
       261: goto 263
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       262: pop
      StackMap locals:
      StackMap stack:
       263: aload 0
            getstatic com.oracle.js.parser.TokenType.MOD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 9
            iastore
       264: goto 266
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       265: pop
      StackMap locals:
      StackMap stack:
       266: aload 0
            getstatic com.oracle.js.parser.TokenType.MUL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 17
            iastore
       267: goto 269
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       268: pop
      StackMap locals:
      StackMap stack:
       269: aload 0
            getstatic com.oracle.js.parser.TokenType.NE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 7
            iastore
       270: goto 272
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       271: pop
      StackMap locals:
      StackMap stack:
       272: aload 0
            getstatic com.oracle.js.parser.TokenType.NEW:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 93
            iastore
       273: goto 275
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       274: pop
      StackMap locals:
      StackMap stack:
       275: aload 0
            getstatic com.oracle.js.parser.TokenType.NE_STRICT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 8
            iastore
       276: goto 278
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       277: pop
      StackMap locals:
      StackMap stack:
       278: aload 0
            getstatic com.oracle.js.parser.TokenType.NON_OCTAL_DECIMAL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 116
            iastore
       279: goto 281
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       280: pop
      StackMap locals:
      StackMap stack:
       281: aload 0
            getstatic com.oracle.js.parser.TokenType.NOT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 6
            iastore
       282: goto 284
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       283: pop
      StackMap locals:
      StackMap stack:
       284: aload 0
            getstatic com.oracle.js.parser.TokenType.NULL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 94
            iastore
       285: goto 287
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       286: pop
      StackMap locals:
      StackMap stack:
       287: aload 0
            getstatic com.oracle.js.parser.TokenType.NULLISHCOALESC:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 60
            iastore
       288: goto 290
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       289: pop
      StackMap locals:
      StackMap stack:
       290: aload 0
            getstatic com.oracle.js.parser.TokenType.OBJECT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 129
            iastore
       291: goto 293
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       292: pop
      StackMap locals:
      StackMap stack:
       293: aload 0
            getstatic com.oracle.js.parser.TokenType.OCTAL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 119
            iastore
       294: goto 296
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       295: pop
      StackMap locals:
      StackMap stack:
       296: aload 0
            getstatic com.oracle.js.parser.TokenType.OCTAL_LEGACY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 118
            iastore
       297: goto 299
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       298: pop
      StackMap locals:
      StackMap stack:
       299: aload 0
            getstatic com.oracle.js.parser.TokenType.OF:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 95
            iastore
       300: goto 302
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       301: pop
      StackMap locals:
      StackMap stack:
       302: aload 0
            getstatic com.oracle.js.parser.TokenType.OPTIONAL_CHAIN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 62
            iastore
       303: goto 305
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       304: pop
      StackMap locals:
      StackMap stack:
       305: aload 0
            getstatic com.oracle.js.parser.TokenType.OR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 55
            iastore
       306: goto 308
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       307: pop
      StackMap locals:
      StackMap stack:
       308: aload 0
            getstatic com.oracle.js.parser.TokenType.PACKAGE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 96
            iastore
       309: goto 311
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       310: pop
      StackMap locals:
      StackMap stack:
       311: aload 0
            getstatic com.oracle.js.parser.TokenType.PERIOD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 28
            iastore
       312: goto 314
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       313: pop
      StackMap locals:
      StackMap stack:
       314: aload 0
            getstatic com.oracle.js.parser.TokenType.PRIVATE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 97
            iastore
       315: goto 317
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       316: pop
      StackMap locals:
      StackMap stack:
       317: aload 0
            getstatic com.oracle.js.parser.TokenType.PRIVATE_IDENT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 135
            iastore
       318: goto 320
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       319: pop
      StackMap locals:
      StackMap stack:
       320: aload 0
            getstatic com.oracle.js.parser.TokenType.PROTECTED:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 98
            iastore
       321: goto 323
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       322: pop
      StackMap locals:
      StackMap stack:
       323: aload 0
            getstatic com.oracle.js.parser.TokenType.PUBLIC:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 99
            iastore
       324: goto 326
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       325: pop
      StackMap locals:
      StackMap stack:
       326: aload 0
            getstatic com.oracle.js.parser.TokenType.RBRACE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 57
            iastore
       327: goto 329
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       328: pop
      StackMap locals:
      StackMap stack:
       329: aload 0
            getstatic com.oracle.js.parser.TokenType.RBRACKET:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 49
            iastore
       330: goto 332
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       331: pop
      StackMap locals:
      StackMap stack:
       332: aload 0
            getstatic com.oracle.js.parser.TokenType.REGEX:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 127
            iastore
       333: goto 335
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       334: pop
      StackMap locals:
      StackMap stack:
       335: aload 0
            getstatic com.oracle.js.parser.TokenType.RETURN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 100
            iastore
       336: goto 338
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       337: pop
      StackMap locals:
      StackMap stack:
       338: aload 0
            getstatic com.oracle.js.parser.TokenType.RPAREN:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 16
            iastore
       339: goto 341
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       340: pop
      StackMap locals:
      StackMap stack:
       341: aload 0
            getstatic com.oracle.js.parser.TokenType.SAR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 43
            iastore
       342: goto 344
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       343: pop
      StackMap locals:
      StackMap stack:
       344: aload 0
            getstatic com.oracle.js.parser.TokenType.SEMICOLON:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 32
            iastore
       345: goto 347
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       346: pop
      StackMap locals:
      StackMap stack:
       347: aload 0
            getstatic com.oracle.js.parser.TokenType.SET:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 101
            iastore
       348: goto 350
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       349: pop
      StackMap locals:
      StackMap stack:
       350: aload 0
            getstatic com.oracle.js.parser.TokenType.SHL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 34
            iastore
       351: goto 353
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       352: pop
      StackMap locals:
      StackMap stack:
       353: aload 0
            getstatic com.oracle.js.parser.TokenType.SHR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 45
            iastore
       354: goto 356
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       355: pop
      StackMap locals:
      StackMap stack:
       356: aload 0
            getstatic com.oracle.js.parser.TokenType.SPREAD_ARGUMENT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 139
            iastore
       357: goto 359
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       358: pop
      StackMap locals:
      StackMap stack:
       359: aload 0
            getstatic com.oracle.js.parser.TokenType.SPREAD_ARRAY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 140
            iastore
       360: goto 362
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       361: pop
      StackMap locals:
      StackMap stack:
       362: aload 0
            getstatic com.oracle.js.parser.TokenType.SPREAD_OBJECT:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 141
            iastore
       363: goto 365
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       364: pop
      StackMap locals:
      StackMap stack:
       365: aload 0
            getstatic com.oracle.js.parser.TokenType.STATIC:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 102
            iastore
       366: goto 368
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       367: pop
      StackMap locals:
      StackMap stack:
       368: aload 0
            getstatic com.oracle.js.parser.TokenType.STRING:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 123
            iastore
       369: goto 371
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       370: pop
      StackMap locals:
      StackMap stack:
       371: aload 0
            getstatic com.oracle.js.parser.TokenType.SUB:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 25
            iastore
       372: goto 374
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       373: pop
      StackMap locals:
      StackMap stack:
       374: aload 0
            getstatic com.oracle.js.parser.TokenType.SUPER:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 103
            iastore
       375: goto 377
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       376: pop
      StackMap locals:
      StackMap stack:
       377: aload 0
            getstatic com.oracle.js.parser.TokenType.SWITCH:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 104
            iastore
       378: goto 380
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       379: pop
      StackMap locals:
      StackMap stack:
       380: aload 0
            getstatic com.oracle.js.parser.TokenType.TEMPLATE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 131
            iastore
       381: goto 383
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       382: pop
      StackMap locals:
      StackMap stack:
       383: aload 0
            getstatic com.oracle.js.parser.TokenType.TEMPLATE_HEAD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 132
            iastore
       384: goto 386
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       385: pop
      StackMap locals:
      StackMap stack:
       386: aload 0
            getstatic com.oracle.js.parser.TokenType.TEMPLATE_MIDDLE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 133
            iastore
       387: goto 389
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       388: pop
      StackMap locals:
      StackMap stack:
       389: aload 0
            getstatic com.oracle.js.parser.TokenType.TEMPLATE_TAIL:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 134
            iastore
       390: goto 392
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       391: pop
      StackMap locals:
      StackMap stack:
       392: aload 0
            getstatic com.oracle.js.parser.TokenType.TERNARY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 47
            iastore
       393: goto 395
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       394: pop
      StackMap locals:
      StackMap stack:
       395: aload 0
            getstatic com.oracle.js.parser.TokenType.THIS:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 105
            iastore
       396: goto 398
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       397: pop
      StackMap locals:
      StackMap stack:
       398: aload 0
            getstatic com.oracle.js.parser.TokenType.THROW:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 106
            iastore
       399: goto 401
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       400: pop
      StackMap locals:
      StackMap stack:
       401: aload 0
            getstatic com.oracle.js.parser.TokenType.TRUE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 107
            iastore
       402: goto 404
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       403: pop
      StackMap locals:
      StackMap stack:
       404: aload 0
            getstatic com.oracle.js.parser.TokenType.TRY:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 108
            iastore
       405: goto 407
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       406: pop
      StackMap locals:
      StackMap stack:
       407: aload 0
            getstatic com.oracle.js.parser.TokenType.TYPEOF:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 109
            iastore
       408: goto 410
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       409: pop
      StackMap locals:
      StackMap stack:
       410: aload 0
            getstatic com.oracle.js.parser.TokenType.VAR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 110
            iastore
       411: goto 413
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       412: pop
      StackMap locals:
      StackMap stack:
       413: aload 0
            getstatic com.oracle.js.parser.TokenType.VOID:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 111
            iastore
       414: goto 416
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       415: pop
      StackMap locals:
      StackMap stack:
       416: aload 0
            getstatic com.oracle.js.parser.TokenType.WHILE:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 112
            iastore
       417: goto 419
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       418: pop
      StackMap locals:
      StackMap stack:
       419: aload 0
            getstatic com.oracle.js.parser.TokenType.WITH:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 113
            iastore
       420: goto 422
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       421: pop
      StackMap locals:
      StackMap stack:
       422: aload 0
            getstatic com.oracle.js.parser.TokenType.XML:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 128
            iastore
       423: goto 425
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       424: pop
      StackMap locals:
      StackMap stack:
       425: aload 0
            getstatic com.oracle.js.parser.TokenType.YIELD:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            bipush 114
            iastore
       426: goto 428
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       427: pop
      StackMap locals:
      StackMap stack:
       428: aload 0
            getstatic com.oracle.js.parser.TokenType.YIELD_STAR:Lcom/oracle/js/parser/TokenType;
            invokevirtual com.oracle.js.parser.TokenType.ordinal:()I
            sipush 142
            iastore
       429: goto 431
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       430: pop
      StackMap locals:
      StackMap stack:
       431: aload 0
            dup
            putstatic com.oracle.truffle.js.parser.GraalJSTranslator.$SWITCH_TABLE$com$oracle$js$parser$TokenType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError
          77    78      79  Class java.lang.NoSuchFieldError
          80    81      82  Class java.lang.NoSuchFieldError
          83    84      85  Class java.lang.NoSuchFieldError
          86    87      88  Class java.lang.NoSuchFieldError
          89    90      91  Class java.lang.NoSuchFieldError
          92    93      94  Class java.lang.NoSuchFieldError
          95    96      97  Class java.lang.NoSuchFieldError
          98    99     100  Class java.lang.NoSuchFieldError
         101   102     103  Class java.lang.NoSuchFieldError
         104   105     106  Class java.lang.NoSuchFieldError
         107   108     109  Class java.lang.NoSuchFieldError
         110   111     112  Class java.lang.NoSuchFieldError
         113   114     115  Class java.lang.NoSuchFieldError
         116   117     118  Class java.lang.NoSuchFieldError
         119   120     121  Class java.lang.NoSuchFieldError
         122   123     124  Class java.lang.NoSuchFieldError
         125   126     127  Class java.lang.NoSuchFieldError
         128   129     130  Class java.lang.NoSuchFieldError
         131   132     133  Class java.lang.NoSuchFieldError
         134   135     136  Class java.lang.NoSuchFieldError
         137   138     139  Class java.lang.NoSuchFieldError
         140   141     142  Class java.lang.NoSuchFieldError
         143   144     145  Class java.lang.NoSuchFieldError
         146   147     148  Class java.lang.NoSuchFieldError
         149   150     151  Class java.lang.NoSuchFieldError
         152   153     154  Class java.lang.NoSuchFieldError
         155   156     157  Class java.lang.NoSuchFieldError
         158   159     160  Class java.lang.NoSuchFieldError
         161   162     163  Class java.lang.NoSuchFieldError
         164   165     166  Class java.lang.NoSuchFieldError
         167   168     169  Class java.lang.NoSuchFieldError
         170   171     172  Class java.lang.NoSuchFieldError
         173   174     175  Class java.lang.NoSuchFieldError
         176   177     178  Class java.lang.NoSuchFieldError
         179   180     181  Class java.lang.NoSuchFieldError
         182   183     184  Class java.lang.NoSuchFieldError
         185   186     187  Class java.lang.NoSuchFieldError
         188   189     190  Class java.lang.NoSuchFieldError
         191   192     193  Class java.lang.NoSuchFieldError
         194   195     196  Class java.lang.NoSuchFieldError
         197   198     199  Class java.lang.NoSuchFieldError
         200   201     202  Class java.lang.NoSuchFieldError
         203   204     205  Class java.lang.NoSuchFieldError
         206   207     208  Class java.lang.NoSuchFieldError
         209   210     211  Class java.lang.NoSuchFieldError
         212   213     214  Class java.lang.NoSuchFieldError
         215   216     217  Class java.lang.NoSuchFieldError
         218   219     220  Class java.lang.NoSuchFieldError
         221   222     223  Class java.lang.NoSuchFieldError
         224   225     226  Class java.lang.NoSuchFieldError
         227   228     229  Class java.lang.NoSuchFieldError
         230   231     232  Class java.lang.NoSuchFieldError
         233   234     235  Class java.lang.NoSuchFieldError
         236   237     238  Class java.lang.NoSuchFieldError
         239   240     241  Class java.lang.NoSuchFieldError
         242   243     244  Class java.lang.NoSuchFieldError
         245   246     247  Class java.lang.NoSuchFieldError
         248   249     250  Class java.lang.NoSuchFieldError
         251   252     253  Class java.lang.NoSuchFieldError
         254   255     256  Class java.lang.NoSuchFieldError
         257   258     259  Class java.lang.NoSuchFieldError
         260   261     262  Class java.lang.NoSuchFieldError
         263   264     265  Class java.lang.NoSuchFieldError
         266   267     268  Class java.lang.NoSuchFieldError
         269   270     271  Class java.lang.NoSuchFieldError
         272   273     274  Class java.lang.NoSuchFieldError
         275   276     277  Class java.lang.NoSuchFieldError
         278   279     280  Class java.lang.NoSuchFieldError
         281   282     283  Class java.lang.NoSuchFieldError
         284   285     286  Class java.lang.NoSuchFieldError
         287   288     289  Class java.lang.NoSuchFieldError
         290   291     292  Class java.lang.NoSuchFieldError
         293   294     295  Class java.lang.NoSuchFieldError
         296   297     298  Class java.lang.NoSuchFieldError
         299   300     301  Class java.lang.NoSuchFieldError
         302   303     304  Class java.lang.NoSuchFieldError
         305   306     307  Class java.lang.NoSuchFieldError
         308   309     310  Class java.lang.NoSuchFieldError
         311   312     313  Class java.lang.NoSuchFieldError
         314   315     316  Class java.lang.NoSuchFieldError
         317   318     319  Class java.lang.NoSuchFieldError
         320   321     322  Class java.lang.NoSuchFieldError
         323   324     325  Class java.lang.NoSuchFieldError
         326   327     328  Class java.lang.NoSuchFieldError
         329   330     331  Class java.lang.NoSuchFieldError
         332   333     334  Class java.lang.NoSuchFieldError
         335   336     337  Class java.lang.NoSuchFieldError
         338   339     340  Class java.lang.NoSuchFieldError
         341   342     343  Class java.lang.NoSuchFieldError
         344   345     346  Class java.lang.NoSuchFieldError
         347   348     349  Class java.lang.NoSuchFieldError
         350   351     352  Class java.lang.NoSuchFieldError
         353   354     355  Class java.lang.NoSuchFieldError
         356   357     358  Class java.lang.NoSuchFieldError
         359   360     361  Class java.lang.NoSuchFieldError
         362   363     364  Class java.lang.NoSuchFieldError
         365   366     367  Class java.lang.NoSuchFieldError
         368   369     370  Class java.lang.NoSuchFieldError
         371   372     373  Class java.lang.NoSuchFieldError
         374   375     376  Class java.lang.NoSuchFieldError
         377   378     379  Class java.lang.NoSuchFieldError
         380   381     382  Class java.lang.NoSuchFieldError
         383   384     385  Class java.lang.NoSuchFieldError
         386   387     388  Class java.lang.NoSuchFieldError
         389   390     391  Class java.lang.NoSuchFieldError
         392   393     394  Class java.lang.NoSuchFieldError
         395   396     397  Class java.lang.NoSuchFieldError
         398   399     400  Class java.lang.NoSuchFieldError
         401   402     403  Class java.lang.NoSuchFieldError
         404   405     406  Class java.lang.NoSuchFieldError
         407   408     409  Class java.lang.NoSuchFieldError
         410   411     412  Class java.lang.NoSuchFieldError
         413   414     415  Class java.lang.NoSuchFieldError
         416   417     418  Class java.lang.NoSuchFieldError
         419   420     421  Class java.lang.NoSuchFieldError
         422   423     424  Class java.lang.NoSuchFieldError
         425   426     427  Class java.lang.NoSuchFieldError
         428   429     430  Class java.lang.NoSuchFieldError

  private void lambda$0(com.oracle.truffle.js.parser.env.Environment, com.oracle.js.parser.ir.LexicalContext, com.oracle.js.parser.ir.FunctionNode, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, com.oracle.truffle.js.runtime.builtins.JSFunctionData);
    descriptor: (Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/js/parser/ir/FunctionNode;ZZZZZZZZLjava/lang/String;ZLcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=13, locals=16, args_size=15
        start local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
        start local 14 // com.oracle.truffle.js.runtime.builtins.JSFunctionData fd
         0: .line 358
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.newTranslator:(Lcom/oracle/truffle/js/parser/env/Environment;Lcom/oracle/js/parser/ir/LexicalContext;)Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            astore 15 /* translator */
        start local 15 // com.oracle.truffle.js.parser.GraalJSTranslator translator
         1: .line 359
            aload 15 /* translator */
            aload 3
            aload 14 /* fd */
            iload 4
            iload 5
            iload 6
            iload 7
            iload 8
            iload 9
         2: .line 360
            iload 10
            iload 11
            aload 12
            iload 13
         3: .line 359
            invokevirtual com.oracle.truffle.js.parser.GraalJSTranslator.translateFunctionOnDemand:(Lcom/oracle/js/parser/ir/FunctionNode;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;ZZZZZZZZLjava/lang/String;Z)Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
            pop
        end local 15 // com.oracle.truffle.js.parser.GraalJSTranslator translator
         4: .line 361
            return
        end local 14 // com.oracle.truffle.js.runtime.builtins.JSFunctionData fd
        end local 0 // com.oracle.truffle.js.parser.GraalJSTranslator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
            0    5    14          fd  Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            1    4    15  translator  Lcom/oracle/truffle/js/parser/GraalJSTranslator;
}
Signature: Lcom/oracle/js/parser/ir/visitor/TranslatorNodeVisitor<Lcom/oracle/js/parser/ir/LexicalContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
SourceFile: "GraalJSTranslator.java"
NestMembers:
  com.oracle.truffle.js.parser.GraalJSTranslator$1  com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor  com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor  com.oracle.truffle.js.parser.GraalJSTranslator$2  com.oracle.truffle.js.parser.GraalJSTranslator$3  com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable
InnerClasses:
  public RegexToken = com.oracle.js.parser.Lexer$RegexToken of com.oracle.js.parser.Lexer
  public final ArrayLiteralNode = com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode of com.oracle.js.parser.ir.LiteralNode
  public final ImportEntry = com.oracle.js.parser.ir.Module$ImportEntry of com.oracle.js.parser.ir.Module
  public final Request = com.oracle.js.parser.ir.RuntimeNode$Request of com.oracle.js.parser.ir.RuntimeNode
  public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public final BinaryOperation = com.oracle.truffle.js.nodes.NodeFactory$BinaryOperation of com.oracle.truffle.js.nodes.NodeFactory
  public final UnaryOperation = com.oracle.truffle.js.nodes.NodeFactory$UnaryOperation of com.oracle.truffle.js.nodes.NodeFactory
  public final SpreadArrayNode = com.oracle.truffle.js.nodes.access.ArrayLiteralNode$SpreadArrayNode of com.oracle.truffle.js.nodes.access.ArrayLiteralNode
  public abstract ObjectLiteralMemberNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode
  public final OptionalTargetableNode = com.oracle.truffle.js.nodes.access.OptionalChainNode$OptionalTargetableNode of com.oracle.truffle.js.nodes.access.OptionalChainNode
  com.oracle.truffle.js.parser.GraalJSTranslator$1
  DirectArgumentsAccessVisitor = com.oracle.truffle.js.parser.GraalJSTranslator$1DirectArgumentsAccessVisitor
  HasClosuresVisitor = com.oracle.truffle.js.parser.GraalJSTranslator$1HasClosuresVisitor
  com.oracle.truffle.js.parser.GraalJSTranslator$2
  com.oracle.truffle.js.parser.GraalJSTranslator$3
  private final EnvironmentCloseable = com.oracle.truffle.js.parser.GraalJSTranslator$EnvironmentCloseable of com.oracle.truffle.js.parser.GraalJSTranslator
  public abstract AbstractFrameVarRef = com.oracle.truffle.js.parser.env.Environment$AbstractFrameVarRef of com.oracle.truffle.js.parser.env.Environment
  public FrameSlotVarRef = com.oracle.truffle.js.parser.env.Environment$FrameSlotVarRef of com.oracle.truffle.js.parser.env.Environment
  public abstract VarRef = com.oracle.truffle.js.parser.env.Environment$VarRef of com.oracle.truffle.js.parser.env.Environment
  public JumpTargetCloseable = com.oracle.truffle.js.parser.env.FunctionEnvironment$JumpTargetCloseable of com.oracle.truffle.js.parser.env.FunctionEnvironment
  public abstract Initializer = com.oracle.truffle.js.runtime.builtins.JSFunctionData$Initializer of com.oracle.truffle.js.runtime.builtins.JSFunctionData
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles