abstract class jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation
  super_class: java.lang.Object
{
  final boolean isOptimistic;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  private final jdk.nashorn.internal.ir.Expression expression;
    descriptor: Ljdk/nashorn/internal/ir/Expression;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.nashorn.internal.ir.Optimistic optimistic;
    descriptor: Ljdk/nashorn/internal/ir/Optimistic;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds resultBounds;
    descriptor: Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final jdk.nashorn.internal.codegen.CodeGenerator this$0;
    descriptor: Ljdk/nashorn/internal/codegen/CodeGenerator;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 4689
            ldc Ljdk/nashorn/internal/codegen/CodeGenerator;
            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 jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.nashorn.internal.codegen.CodeGenerator, jdk.nashorn.internal.ir.Optimistic, jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds);
    descriptor: (Ljdk/nashorn/internal/codegen/CodeGenerator;Ljdk/nashorn/internal/ir/Optimistic;Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 2 // jdk.nashorn.internal.ir.Optimistic optimistic
        start local 3 // jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds resultBounds
         0: .line 4696
            aload 0 /* this */
            aload 1
            putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 4697
            aload 0 /* this */
            aload 2 /* optimistic */
            putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
         2: .line 4698
            aload 0 /* this */
            aload 2 /* optimistic */
            checkcast jdk.nashorn.internal.ir.Expression
            putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
         3: .line 4699
            aload 0 /* this */
            aload 3 /* resultBounds */
            putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
         4: .line 4700
            aload 0 /* this */
            aload 2 /* optimistic */
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.isOptimistic:(Ljdk/nashorn/internal/ir/Optimistic;)Z
            ifeq 6
         5: .line 4703
            aload 3 /* resultBounds */
            aload 2 /* optimistic */
            checkcast jdk.nashorn.internal.ir.Expression
            invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
            invokestatic jdk.nashorn.internal.codegen.types.Type.generic:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
            aload 3 /* resultBounds */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.widest:Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.types.Type.narrowerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
            ifeq 6
            iconst_1
            goto 7
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation jdk.nashorn.internal.codegen.CodeGenerator jdk.nashorn.internal.ir.Optimistic jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds
      StackMap stack: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation
         6: iconst_0
         7: .line 4700
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation jdk.nashorn.internal.codegen.CodeGenerator jdk.nashorn.internal.ir.Optimistic jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds
      StackMap stack: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int
            putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
         8: .line 4705
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 9
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 9
            aload 1
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.useOptimisticTypes:()Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 4706
      StackMap locals:
      StackMap stack:
            return
        end local 3 // jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds resultBounds
        end local 2 // jdk.nashorn.internal.ir.Optimistic optimistic
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0   10     2    optimistic  Ljdk/nashorn/internal/ir/Optimistic;
            0   10     3  resultBounds  Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
    MethodParameters:
              Name  Flags
      this$0        final
      optimistic    final
      resultBounds  final

  jdk.nashorn.internal.codegen.MethodEmitter emit();
    descriptor: ()Ljdk/nashorn/internal/codegen/MethodEmitter;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
         0: .line 4709
            aload 0 /* this */
            iconst_0
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit:(I)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;

  jdk.nashorn.internal.codegen.MethodEmitter emit(int);
    descriptor: (I)Ljdk/nashorn/internal/codegen/MethodEmitter;
    flags: (0x0000) 
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // int ignoredArgCount
         0: .line 4713
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
            invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
            istore 2 /* programPoint */
        start local 2 // int programPoint
         1: .line 4714
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifne 2
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            iload 2 /* programPoint */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.isContinuationEntryPoint:(I)Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* optimisticOrContinuation */
        start local 3 // boolean optimisticOrContinuation
         4: .line 4715
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            iload 2 /* programPoint */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.isCurrentContinuationEntryPoint:(I)Z
            istore 4 /* currentContinuationEntryPoint */
        start local 4 // boolean currentContinuationEntryPoint
         5: .line 4716
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
            iload 1 /* ignoredArgCount */
            isub
            istore 5 /* stackSizeOnEntry */
        start local 5 // int stackSizeOnEntry
         6: .line 4721
            aload 0 /* this */
            iload 1 /* ignoredArgCount */
            iload 3 /* optimisticOrContinuation */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.storeStack:(IZ)I
            pop
         7: .line 4724
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.loadStack:()V
         8: .line 4732
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
            iload 5 /* stackSizeOnEntry */
            isub
            iload 3 /* optimisticOrContinuation */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.storeStack:(IZ)I
            istore 6 /* liveLocalsCount */
        start local 6 // int liveLocalsCount
         9: .line 4733
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 12
            iload 3 /* optimisticOrContinuation */
            iload 6 /* liveLocalsCount */
            iconst_m1
            if_icmpeq 10
            iconst_1
            goto 11
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int
      StackMap stack: int
        10: iconst_0
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int
      StackMap stack: int int
        11: if_icmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 4737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifne 13
            iload 4 /* currentContinuationEntryPoint */
            ifeq 14
      StackMap locals:
      StackMap stack:
        13: new jdk.nashorn.internal.codegen.Label
            dup
            ldc "after_consume_stack"
            invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
            goto 15
      StackMap locals:
      StackMap stack:
        14: aconst_null
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.codegen.Label
        15: astore 9 /* afterConsumeStack */
        start local 9 // jdk.nashorn.internal.codegen.Label afterConsumeStack
        16: .line 4738
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 24
        17: .line 4739
            new jdk.nashorn.internal.codegen.Label
            dup
            ldc "try_optimistic"
            invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
            astore 7 /* beginTry */
        start local 7 // jdk.nashorn.internal.codegen.Label beginTry
        18: .line 4740
            new java.lang.StringBuilder
            dup
            aload 9 /* afterConsumeStack */
            ifnonnull 19
            ldc ""
            goto 20
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label top jdk.nashorn.internal.codegen.Label
      StackMap stack: new 18 new 18
        19: aload 9 /* afterConsumeStack */
            invokevirtual jdk.nashorn.internal.codegen.Label.toString:()Ljava/lang/String;
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label top jdk.nashorn.internal.codegen.Label
      StackMap stack: new 18 new 18 java.lang.String
        20: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_handler"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* catchLabelName */
        start local 10 // java.lang.String catchLabelName
        21: .line 4741
            new jdk.nashorn.internal.codegen.Label
            dup
            aload 10 /* catchLabelName */
            invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
            astore 8 /* catchLabel */
        start local 8 // jdk.nashorn.internal.codegen.Label catchLabel
        22: .line 4742
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 7 /* beginTry */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.label:(Ljdk/nashorn/internal/codegen/Label;)V
        end local 10 // java.lang.String catchLabelName
        23: .line 4743
            goto 26
        end local 8 // jdk.nashorn.internal.codegen.Label catchLabel
        end local 7 // jdk.nashorn.internal.codegen.Label beginTry
        24: .line 4744
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int top top jdk.nashorn.internal.codegen.Label
      StackMap stack:
            aconst_null
            dup
            astore 8 /* catchLabel */
        start local 8 // jdk.nashorn.internal.codegen.Label catchLabel
        25: astore 7 /* beginTry */
        start local 7 // jdk.nashorn.internal.codegen.Label beginTry
        26: .line 4747
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.consumeStack:()V
        27: .line 4749
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 29
        28: .line 4750
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 7 /* beginTry */
            aload 9 /* afterConsumeStack */
            aload 8 /* catchLabel */
            ldc Ljdk/nashorn/internal/runtime/UnwarrantedOptimismException;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter._try:(Ljdk/nashorn/internal/codegen/Label;Ljdk/nashorn/internal/codegen/Label;Ljdk/nashorn/internal/codegen/Label;Ljava/lang/Class;)V
        29: .line 4753
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifne 30
            iload 4 /* currentContinuationEntryPoint */
            ifeq 52
        30: .line 4754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 9 /* afterConsumeStack */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.label:(Ljdk/nashorn/internal/codegen/Label;)V
        31: .line 4756
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            iconst_0
            iload 5 /* stackSizeOnEntry */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalLoadsOnStack:(II)[I
            astore 10 /* localLoads */
        start local 10 // int[] localLoads
        32: .line 4757
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 33
            aload 10 /* localLoads */
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.everyStackValueIsLocalLoad:([I)Z
            ifne 33
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 10 /* localLoads */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* stackSizeOnEntry */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* ignoredArgCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        33: .line 4758
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalVariableTypes:()Ljava/util/List;
            astore 11 /* localTypesList */
        start local 11 // java.util.List localTypesList
        34: .line 4759
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getUsedSlotsWithLiveTemporaries:()I
            istore 12 /* usedLocals */
        start local 12 // int usedLocals
        35: .line 4760
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 11 /* localTypesList */
            iconst_0
            iload 12 /* usedLocals */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getWidestLiveLocals:(Ljava/util/List;)Ljava/util/List;
            astore 13 /* localTypes */
        start local 13 // java.util.List localTypes
        36: .line 4761
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 37
            aload 10 /* localLoads */
            iload 12 /* usedLocals */
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.everyLocalLoadIsValid:([II)Z
            ifne 37
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 10 /* localLoads */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ~ "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* localTypes */
            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
        37: .line 4763
      StackMap locals: java.util.List int java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 39
        38: .line 4764
            aload 0 /* this */
            aload 13 /* localTypes */
            aload 8 /* catchLabel */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.addUnwarrantedOptimismHandlerLabel:(Ljava/util/List;Ljdk/nashorn/internal/codegen/Label;)V
        39: .line 4766
      StackMap locals:
      StackMap stack:
            iload 4 /* currentContinuationEntryPoint */
            ifeq 52
        40: .line 4767
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getContinuationInfo:()Ljdk/nashorn/internal/codegen/CodeGenerator$ContinuationInfo;
            astore 14 /* ci */
        start local 14 // jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo ci
        41: .line 4768
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 42
            aload 14 /* ci */
            ifnonnull 42
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "no continuation info found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.access$0:(Ljdk/nashorn/internal/codegen/CodeGenerator;)Ljdk/nashorn/internal/ir/LexicalContext;
            checkcast jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext
            invokevirtual jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext.getCurrentFunction:()Ljdk/nashorn/internal/ir/FunctionNode;
            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
        42: .line 4769
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo
      StackMap stack:
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 43
            aload 14 /* ci */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.hasTargetLabel:()Z
            ifeq 43
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        43: .line 4770
      StackMap locals:
      StackMap stack:
            aload 14 /* ci */
            aload 9 /* afterConsumeStack */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setTargetLabel:(Ljdk/nashorn/internal/codegen/Label;)V
        44: .line 4771
            aload 14 /* ci */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.getHandlerLabel:()Ljdk/nashorn/internal/codegen/Label;
            aload 9 /* afterConsumeStack */
            invokevirtual jdk.nashorn.internal.codegen.Label.markAsOptimisticContinuationHandlerFor:(Ljdk/nashorn/internal/codegen/Label;)V
        45: .line 4774
            aload 14 /* ci */
            aload 13 /* localTypes */
            invokeinterface java.util.List.size:()I
            putfield jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.lvarCount:I
        46: .line 4775
            aload 14 /* ci */
            aload 10 /* localLoads */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setStackStoreSpec:([I)V
        47: .line 4776
            aload 14 /* ci */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getTypesFromStack:(I)[Ljdk/nashorn/internal/codegen/types/Type;
            iload 5 /* stackSizeOnEntry */
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast jdk.nashorn.internal.codegen.types.Type[]
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setStackTypes:([Ljdk/nashorn/internal/codegen/types/Type;)V
        48: .line 4777
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 49
            aload 14 /* ci */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.getStackStoreSpec:()[I
            arraylength
            aload 14 /* ci */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.getStackTypes:()[Ljdk/nashorn/internal/codegen/types/Type;
            arraylength
            if_icmpeq 49
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        49: .line 4778
      StackMap locals:
      StackMap stack:
            aload 14 /* ci */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.peekType:()Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setReturnValueType:(Ljdk/nashorn/internal/codegen/types/Type;)V
        50: .line 4779
            aload 14 /* ci */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getLastLineNumber:()I
            putfield jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.lineNumber:I
        51: .line 4780
            aload 14 /* ci */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.catchLabels:Ljava/util/Deque;
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.codegen.Label
            putfield jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.catchLabel:Ljdk/nashorn/internal/codegen/Label;
        end local 14 // jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo ci
        end local 13 // java.util.List localTypes
        end local 12 // int usedLocals
        end local 11 // java.util.List localTypesList
        end local 10 // int[] localLoads
        52: .line 4783
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
        end local 9 // jdk.nashorn.internal.codegen.Label afterConsumeStack
        end local 8 // jdk.nashorn.internal.codegen.Label catchLabel
        end local 7 // jdk.nashorn.internal.codegen.Label beginTry
        end local 6 // int liveLocalsCount
        end local 5 // int stackSizeOnEntry
        end local 4 // boolean currentContinuationEntryPoint
        end local 3 // boolean optimisticOrContinuation
        end local 2 // int programPoint
        end local 1 // int ignoredArgCount
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   53     0                           this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0   53     1                ignoredArgCount  I
            1   53     2                   programPoint  I
            4   53     3       optimisticOrContinuation  Z
            5   53     4  currentContinuationEntryPoint  Z
            6   53     5               stackSizeOnEntry  I
            9   53     6                liveLocalsCount  I
           18   24     7                       beginTry  Ljdk/nashorn/internal/codegen/Label;
           26   53     7                       beginTry  Ljdk/nashorn/internal/codegen/Label;
           22   24     8                     catchLabel  Ljdk/nashorn/internal/codegen/Label;
           25   53     8                     catchLabel  Ljdk/nashorn/internal/codegen/Label;
           16   53     9              afterConsumeStack  Ljdk/nashorn/internal/codegen/Label;
           21   23    10                 catchLabelName  Ljava/lang/String;
           32   52    10                     localLoads  [I
           34   52    11                 localTypesList  Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
           35   52    12                     usedLocals  I
           36   52    13                     localTypes  Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
           41   52    14                             ci  Ljdk/nashorn/internal/codegen/CodeGenerator$ContinuationInfo;
    MethodParameters:
                 Name  Flags
      ignoredArgCount  final

  private int storeStack(int, boolean);
    descriptor: (IZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=19, args_size=3
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // int ignoreArgCount
        start local 2 // boolean optimisticOrContinuation
         0: .line 4801
            iload 2 /* optimisticOrContinuation */
            ifne 2
         1: .line 4802
            iconst_m1
            ireturn
         2: .line 4805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
            istore 3 /* stackSize */
        start local 3 // int stackSize
         3: .line 4806
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            iload 3 /* stackSize */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getTypesFromStack:(I)[Ljdk/nashorn/internal/codegen/types/Type;
            astore 4 /* stackTypes */
        start local 4 // jdk.nashorn.internal.codegen.types.Type[] stackTypes
         4: .line 4807
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            iconst_0
            iload 3 /* stackSize */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalLoadsOnStack:(II)[I
            astore 5 /* localLoadsOnStack */
        start local 5 // int[] localLoadsOnStack
         5: .line 4808
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getUsedSlotsWithLiveTemporaries:()I
            istore 6 /* usedSlots */
        start local 6 // int usedSlots
         6: .line 4810
            iload 3 /* stackSize */
            iload 1 /* ignoreArgCount */
            isub
            istore 7 /* firstIgnored */
        start local 7 // int firstIgnored
         7: .line 4812
            iconst_0
            istore 8 /* firstNonLoad */
        start local 8 // int firstNonLoad
         8: .line 4813
            goto 10
         9: .line 4814
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int jdk.nashorn.internal.codegen.types.Type[] int[] int int int
      StackMap stack:
            iinc 8 /* firstNonLoad */ 1
        10: .line 4813
      StackMap locals:
      StackMap stack:
            iload 8 /* firstNonLoad */
            iload 7 /* firstIgnored */
            if_icmpge 11
            aload 5 /* localLoadsOnStack */
            iload 8 /* firstNonLoad */
            iaload
            iconst_m1
            if_icmpne 9
        11: .line 4819
      StackMap locals:
      StackMap stack:
            iload 8 /* firstNonLoad */
            iload 7 /* firstIgnored */
            if_icmplt 13
        12: .line 4820
            iload 6 /* usedSlots */
            ireturn
        13: .line 4825
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* tempSlotsNeeded */
        start local 9 // int tempSlotsNeeded
        14: .line 4826
            iload 8 /* firstNonLoad */
            istore 10 /* i */
        start local 10 // int i
        15: goto 19
        16: .line 4827
      StackMap locals: int int
      StackMap stack:
            aload 5 /* localLoadsOnStack */
            iload 10 /* i */
            iaload
            iconst_m1
            if_icmpne 18
        17: .line 4828
            iload 9 /* tempSlotsNeeded */
            aload 4 /* stackTypes */
            iload 10 /* i */
            aaload
            invokevirtual jdk.nashorn.internal.codegen.types.Type.getSlots:()I
            iadd
            istore 9 /* tempSlotsNeeded */
        18: .line 4826
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 10 /* i */
            iload 3 /* stackSize */
            if_icmplt 16
        end local 10 // int i
        20: .line 4835
            iload 6 /* usedSlots */
            iload 9 /* tempSlotsNeeded */
            iadd
            istore 10 /* lastTempSlot */
        start local 10 // int lastTempSlot
        21: .line 4836
            iconst_0
            istore 11 /* ignoreSlotCount */
        start local 11 // int ignoreSlotCount
        22: .line 4837
            iload 3 /* stackSize */
            istore 12 /* i */
        start local 12 // int i
        23: goto 34
        24: .line 4838
      StackMap locals: int int
      StackMap stack:
            aload 5 /* localLoadsOnStack */
            iload 12 /* i */
            iaload
            istore 13 /* loadSlot */
        start local 13 // int loadSlot
        25: .line 4839
            iload 13 /* loadSlot */
            iconst_m1
            if_icmpne 33
        26: .line 4840
            aload 4 /* stackTypes */
            iload 12 /* i */
            aaload
            astore 14 /* type */
        start local 14 // jdk.nashorn.internal.codegen.types.Type type
        27: .line 4841
            aload 14 /* type */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.getSlots:()I
            istore 15 /* slots */
        start local 15 // int slots
        28: .line 4842
            iload 10 /* lastTempSlot */
            iload 15 /* slots */
            isub
            istore 10 /* lastTempSlot */
        29: .line 4843
            iload 12 /* i */
            iload 7 /* firstIgnored */
            if_icmplt 31
        30: .line 4844
            iload 11 /* ignoreSlotCount */
            iload 15 /* slots */
            iadd
            istore 11 /* ignoreSlotCount */
        31: .line 4846
      StackMap locals: int jdk.nashorn.internal.codegen.types.Type int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 14 /* type */
            iload 10 /* lastTempSlot */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.storeTemp:(Ljdk/nashorn/internal/codegen/types/Type;I)V
        end local 15 // int slots
        end local 14 // jdk.nashorn.internal.codegen.types.Type type
        32: .line 4847
            goto 34
        33: .line 4848
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.pop:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        end local 13 // int loadSlot
        34: .line 4837
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            iinc 12 /* i */ -1
            iload 8 /* firstNonLoad */
            if_icmpgt 24
        end local 12 // int i
        35: .line 4851
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 36
            iload 10 /* lastTempSlot */
            iload 6 /* usedSlots */
            if_icmpeq 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        36: .line 4853
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalVariableTypes:()Ljava/util/List;
            astore 12 /* localTypesList */
        start local 12 // java.util.List localTypesList
        37: .line 4856
            iload 8 /* firstNonLoad */
            istore 13 /* i */
        start local 13 // int i
        38: goto 55
        39: .line 4857
      StackMap locals: java.util.List int
      StackMap stack:
            aload 5 /* localLoadsOnStack */
            iload 13 /* i */
            iaload
            istore 14 /* loadSlot */
        start local 14 // int loadSlot
        40: .line 4858
            aload 4 /* stackTypes */
            iload 13 /* i */
            aaload
            astore 15 /* stackType */
        start local 15 // jdk.nashorn.internal.codegen.types.Type stackType
        41: .line 4859
            iload 14 /* loadSlot */
            iconst_m1
            if_icmpeq 42
            iconst_1
            goto 43
      StackMap locals: int jdk.nashorn.internal.codegen.types.Type
      StackMap stack:
        42: iconst_0
      StackMap locals:
      StackMap stack: int
        43: istore 16 /* isLoad */
        start local 16 // boolean isLoad
        44: .line 4860
            iload 16 /* isLoad */
            ifeq 45
            iload 14 /* loadSlot */
            goto 46
      StackMap locals: int
      StackMap stack:
        45: iload 10 /* lastTempSlot */
      StackMap locals:
      StackMap stack: int
        46: istore 17 /* lvarSlot */
        start local 17 // int lvarSlot
        47: .line 4861
            aload 12 /* localTypesList */
            iload 17 /* lvarSlot */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.codegen.types.Type
            astore 18 /* lvarType */
        start local 18 // jdk.nashorn.internal.codegen.types.Type lvarType
        48: .line 4862
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 18 /* lvarType */
            iload 17 /* lvarSlot */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        49: .line 4863
            iload 16 /* isLoad */
            ifeq 52
        50: .line 4875
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 15 /* stackType */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.convert:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        51: .line 4876
            goto 54
        52: .line 4878
      StackMap locals: int jdk.nashorn.internal.codegen.types.Type
      StackMap stack:
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 53
            aload 18 /* lvarType */
            aload 15 /* stackType */
            if_acmpeq 53
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        53: .line 4879
      StackMap locals:
      StackMap stack:
            iload 10 /* lastTempSlot */
            aload 18 /* lvarType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.getSlots:()I
            iadd
            istore 10 /* lastTempSlot */
        end local 18 // jdk.nashorn.internal.codegen.types.Type lvarType
        end local 17 // int lvarSlot
        end local 16 // boolean isLoad
        end local 15 // jdk.nashorn.internal.codegen.types.Type stackType
        end local 14 // int loadSlot
        54: .line 4856
      StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int jdk.nashorn.internal.codegen.types.Type[] int[] int int int int int int java.util.List int
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 13 /* i */
            iload 3 /* stackSize */
            if_icmplt 39
        end local 13 // int i
        56: .line 4883
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 57
            iload 10 /* lastTempSlot */
            iload 6 /* usedSlots */
            iload 9 /* tempSlotsNeeded */
            iadd
            if_icmpeq 57
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        57: .line 4885
      StackMap locals:
      StackMap stack:
            iload 10 /* lastTempSlot */
            iload 11 /* ignoreSlotCount */
            isub
            ireturn
        end local 12 // java.util.List localTypesList
        end local 11 // int ignoreSlotCount
        end local 10 // int lastTempSlot
        end local 9 // int tempSlotsNeeded
        end local 8 // int firstNonLoad
        end local 7 // int firstIgnored
        end local 6 // int usedSlots
        end local 5 // int[] localLoadsOnStack
        end local 4 // jdk.nashorn.internal.codegen.types.Type[] stackTypes
        end local 3 // int stackSize
        end local 2 // boolean optimisticOrContinuation
        end local 1 // int ignoreArgCount
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   58     0                      this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0   58     1            ignoreArgCount  I
            0   58     2  optimisticOrContinuation  Z
            3   58     3                 stackSize  I
            4   58     4                stackTypes  [Ljdk/nashorn/internal/codegen/types/Type;
            5   58     5         localLoadsOnStack  [I
            6   58     6                 usedSlots  I
            7   58     7              firstIgnored  I
            8   58     8              firstNonLoad  I
           14   58     9           tempSlotsNeeded  I
           15   20    10                         i  I
           21   58    10              lastTempSlot  I
           22   58    11           ignoreSlotCount  I
           23   35    12                         i  I
           25   34    13                  loadSlot  I
           27   32    14                      type  Ljdk/nashorn/internal/codegen/types/Type;
           28   32    15                     slots  I
           37   58    12            localTypesList  Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
           38   56    13                         i  I
           40   54    14                  loadSlot  I
           41   54    15                 stackType  Ljdk/nashorn/internal/codegen/types/Type;
           44   54    16                    isLoad  Z
           47   54    17                  lvarSlot  I
           48   54    18                  lvarType  Ljdk/nashorn/internal/codegen/types/Type;
    MethodParameters:
                          Name  Flags
      ignoreArgCount            final
      optimisticOrContinuation  final

  private void addUnwarrantedOptimismHandlerLabel(java.util.List<jdk.nashorn.internal.codegen.types.Type>, jdk.nashorn.internal.codegen.Label);
    descriptor: (Ljava/util/List;Ljdk/nashorn/internal/codegen/Label;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // java.util.List localTypes
        start local 2 // jdk.nashorn.internal.codegen.Label label
         0: .line 4889
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            aload 1 /* localTypes */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getLvarTypesDescriptor:(Ljava/util/List;)Ljava/lang/String;
            astore 3 /* lvarTypesDescriptor */
        start local 3 // java.lang.String lvarTypesDescriptor
         1: .line 4890
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.access$0:(Ljdk/nashorn/internal/codegen/CodeGenerator;)Ljdk/nashorn/internal/ir/LexicalContext;
            checkcast jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext
            invokevirtual jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext.getUnwarrantedOptimismHandlers:()Ljava/util/Map;
            astore 4 /* unwarrantedOptimismHandlers */
        start local 4 // java.util.Map unwarrantedOptimismHandlers
         2: .line 4891
            aload 4 /* unwarrantedOptimismHandlers */
            aload 3 /* lvarTypesDescriptor */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            astore 5 /* labels */
        start local 5 // java.util.Collection labels
         3: .line 4892
            aload 5 /* labels */
            ifnonnull 6
         4: .line 4893
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 5 /* labels */
         5: .line 4894
            aload 4 /* unwarrantedOptimismHandlers */
            aload 3 /* lvarTypesDescriptor */
            aload 5 /* labels */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 4896
      StackMap locals: java.lang.String java.util.Map java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 2 /* label */
            aload 1 /* localTypes */
            invokeinterface java.util.List.size:()I
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.markLabelAsOptimisticCatchHandler:(Ljdk/nashorn/internal/codegen/Label;I)V
         7: .line 4897
            aload 5 /* labels */
            aload 2 /* label */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         8: .line 4898
            return
        end local 5 // java.util.Collection labels
        end local 4 // java.util.Map unwarrantedOptimismHandlers
        end local 3 // java.lang.String lvarTypesDescriptor
        end local 2 // jdk.nashorn.internal.codegen.Label label
        end local 1 // java.util.List localTypes
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    9     0                         this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0    9     1                   localTypes  Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
            0    9     2                        label  Ljdk/nashorn/internal/codegen/Label;
            1    9     3          lvarTypesDescriptor  Ljava/lang/String;
            2    9     4  unwarrantedOptimismHandlers  Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<Ljdk/nashorn/internal/codegen/Label;>;>;
            3    9     5                       labels  Ljava/util/Collection<Ljdk/nashorn/internal/codegen/Label;>;
    Signature: (Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;Ljdk/nashorn/internal/codegen/Label;)V
    MethodParameters:
            Name  Flags
      localTypes  final
      label       final

  abstract void loadStack();
    descriptor: ()V
    flags: (0x0400) ACC_ABSTRACT

  abstract void consumeStack();
    descriptor: ()V
    flags: (0x0400) ACC_ABSTRACT

  jdk.nashorn.internal.codegen.MethodEmitter dynamicGet(java.lang.String, int, boolean, boolean);
    descriptor: (Ljava/lang/String;IZZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // java.lang.String name
        start local 2 // int flags
        start local 3 // boolean isMethod
        start local 4 // boolean isIndex
         0: .line 4920
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 2
         1: .line 4921
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
            aload 1 /* name */
            aload 0 /* this */
            iload 2 /* flags */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticFlags:(I)I
            iload 3 /* isMethod */
            iload 4 /* isIndex */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGet:(Ljdk/nashorn/internal/codegen/types/Type;Ljava/lang/String;IZZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
         2: .line 4923
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
            invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
            aload 1 /* name */
            iload 2 /* flags */
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.nonOptimisticFlags:(I)I
            iload 3 /* isMethod */
            iload 4 /* isIndex */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGet:(Ljdk/nashorn/internal/codegen/types/Type;Ljava/lang/String;IZZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
        end local 4 // boolean isIndex
        end local 3 // boolean isMethod
        end local 2 // int flags
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0    3     1      name  Ljava/lang/String;
            0    3     2     flags  I
            0    3     3  isMethod  Z
            0    3     4   isIndex  Z
    MethodParameters:
          Name  Flags
      name      final
      flags     final
      isMethod  final
      isIndex   final

  jdk.nashorn.internal.codegen.MethodEmitter dynamicGetIndex(int, boolean);
    descriptor: (IZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // int flags
        start local 2 // boolean isMethod
         0: .line 4927
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 2
         1: .line 4928
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
            aload 0 /* this */
            iload 1 /* flags */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticFlags:(I)I
            iload 2 /* isMethod */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGetIndex:(Ljdk/nashorn/internal/codegen/types/Type;IZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
         2: .line 4930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
            invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
            iload 1 /* flags */
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.nonOptimisticFlags:(I)I
            iload 2 /* isMethod */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGetIndex:(Ljdk/nashorn/internal/codegen/types/Type;IZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
        end local 2 // boolean isMethod
        end local 1 // int flags
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0    3     1     flags  I
            0    3     2  isMethod  Z
    MethodParameters:
          Name  Flags
      flags     final
      isMethod  final

  jdk.nashorn.internal.codegen.MethodEmitter dynamicCall(int, int, java.lang.String);
    descriptor: (IILjava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // int argCount
        start local 2 // int flags
        start local 3 // java.lang.String msg
         0: .line 4934
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 2
         1: .line 4935
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
            iload 1 /* argCount */
            aload 0 /* this */
            iload 2 /* flags */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticFlags:(I)I
            aload 3 /* msg */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicCall:(Ljdk/nashorn/internal/codegen/types/Type;IILjava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
         2: .line 4937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
            invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
            iload 1 /* argCount */
            iload 2 /* flags */
            invokestatic jdk.nashorn.internal.codegen.CodeGenerator.nonOptimisticFlags:(I)I
            aload 3 /* msg */
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicCall:(Ljdk/nashorn/internal/codegen/types/Type;IILjava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            areturn
        end local 3 // java.lang.String msg
        end local 2 // int flags
        end local 1 // int argCount
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0    3     1  argCount  I
            0    3     2     flags  I
            0    3     3       msg  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      argCount  final
      flags     final
      msg       final

  int getOptimisticFlags(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // int flags
         0: .line 4941
            iload 1 /* flags */
            sipush 128
            ior
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
            invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
            bipush 15
            ishl
            ior
            ireturn
        end local 1 // int flags
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0    1     1  flags  I
    MethodParameters:
       Name  Flags
      flags  final

  int getProgramPoint();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
         0: .line 4945
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 1
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
            invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;

  void convertOptimisticReturnValue();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
         0: .line 4949
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
            ifeq 11
         1: .line 4950
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
            astore 1 /* optimisticType */
        start local 1 // jdk.nashorn.internal.codegen.types.Type optimisticType
         2: .line 4951
            aload 1 /* optimisticType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
            ifne 11
         3: .line 4952
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
            invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(I)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         4: .line 4953
            aload 1 /* optimisticType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isInteger:()Z
            ifeq 7
         5: .line 4954
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            getstatic jdk.nashorn.internal.codegen.CodeGenerator.ENSURE_INT:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         6: .line 4955
            goto 11
      StackMap locals: jdk.nashorn.internal.codegen.types.Type
      StackMap stack:
         7: aload 1 /* optimisticType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isNumber:()Z
            ifeq 10
         8: .line 4956
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            getstatic jdk.nashorn.internal.codegen.CodeGenerator.ENSURE_NUMBER:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         9: .line 4957
            goto 11
        10: .line 4958
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            aload 1 /* optimisticType */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // jdk.nashorn.internal.codegen.types.Type optimisticType
        11: .line 4962
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            2   11     1  optimisticType  Ljdk/nashorn/internal/codegen/types/Type;

  void replaceCompileTimeProperty();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
         0: .line 4965
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
            checkcast jdk.nashorn.internal.ir.IdentNode
            astore 1 /* identNode */
        start local 1 // jdk.nashorn.internal.ir.IdentNode identNode
         1: .line 4966
            aload 1 /* identNode */
            invokevirtual jdk.nashorn.internal.ir.IdentNode.getSymbol:()Ljdk/nashorn/internal/ir/Symbol;
            invokevirtual jdk.nashorn.internal.ir.Symbol.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         2: .line 4967
            getstatic jdk.nashorn.internal.codegen.CompilerConstants.__FILE__:Ljdk/nashorn/internal/codegen/CompilerConstants;
            invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.name:()Ljava/lang/String;
            aload 2 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 4968
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCurrentSource:()Ljdk/nashorn/internal/runtime/Source;
            invokevirtual jdk.nashorn.internal.runtime.Source.getName:()Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.replaceCompileTimeProperty:(Ljava/lang/Object;)V
         4: .line 4969
            goto 10
      StackMap locals: jdk.nashorn.internal.ir.IdentNode java.lang.String
      StackMap stack:
         5: getstatic jdk.nashorn.internal.codegen.CompilerConstants.__DIR__:Ljdk/nashorn/internal/codegen/CompilerConstants;
            invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.name:()Ljava/lang/String;
            aload 2 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 4970
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCurrentSource:()Ljdk/nashorn/internal/runtime/Source;
            invokevirtual jdk.nashorn.internal.runtime.Source.getBase:()Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.replaceCompileTimeProperty:(Ljava/lang/Object;)V
         7: .line 4971
            goto 10
      StackMap locals:
      StackMap stack:
         8: getstatic jdk.nashorn.internal.codegen.CompilerConstants.__LINE__:Ljdk/nashorn/internal/codegen/CompilerConstants;
            invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.name:()Ljava/lang/String;
            aload 2 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 4972
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCurrentSource:()Ljdk/nashorn/internal/runtime/Source;
            aload 1 /* identNode */
            invokevirtual jdk.nashorn.internal.ir.IdentNode.position:()I
            invokevirtual jdk.nashorn.internal.runtime.Source.getLine:(I)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.replaceCompileTimeProperty:(Ljava/lang/Object;)V
        10: .line 4974
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String name
        end local 1 // jdk.nashorn.internal.ir.IdentNode identNode
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            1   11     1  identNode  Ljdk/nashorn/internal/ir/IdentNode;
            2   11     2       name  Ljava/lang/String;

  private void replaceCompileTimeProperty(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
        start local 1 // java.lang.Object propertyValue
         0: .line 4986
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.peekType:()Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4987
      StackMap locals:
      StackMap stack:
            aload 1 /* propertyValue */
            instanceof java.lang.String
            ifne 2
            aload 1 /* propertyValue */
            ifnonnull 4
         2: .line 4988
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 1 /* propertyValue */
            checkcast java.lang.String
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         3: .line 4989
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 1 /* propertyValue */
            instanceof java.lang.Integer
            ifeq 8
         5: .line 4990
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            aload 1 /* propertyValue */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(I)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         6: .line 4991
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
            getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
            invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.convert:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
         7: .line 4992
            goto 9
         8: .line 4993
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 4995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.globalReplaceLocationPropertyPlaceholder:()Ljdk/nashorn/internal/codegen/MethodEmitter;
            pop
        10: .line 4996
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.convertOptimisticReturnValue:()V
        11: .line 4997
            return
        end local 1 // java.lang.Object propertyValue
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            0   12     1  propertyValue  Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      propertyValue  final

  jdk.nashorn.internal.codegen.types.Type getOptimisticCoercedType();
    descriptor: ()Ljdk/nashorn/internal/codegen/types/Type;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
         0: .line 5009
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
            invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
            astore 1 /* optimisticType */
        start local 1 // jdk.nashorn.internal.codegen.types.Type optimisticType
         1: .line 5010
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
            getfield jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.widest:Ljdk/nashorn/internal/codegen/types/Type;
            aload 1 /* optimisticType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.widerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 5011
      StackMap locals: jdk.nashorn.internal.codegen.types.Type
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
            getfield jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.narrowest:Ljdk/nashorn/internal/codegen/types/Type;
            astore 2 /* narrowest */
        start local 2 // jdk.nashorn.internal.codegen.types.Type narrowest
         3: .line 5013
            aload 2 /* narrowest */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isBoolean:()Z
            ifne 4
            aload 2 /* narrowest */
            aload 1 /* optimisticType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.narrowerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
            ifeq 6
         4: .line 5014
      StackMap locals: jdk.nashorn.internal.codegen.types.Type
      StackMap stack:
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 5
            aload 1 /* optimisticType */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 5015
      StackMap locals:
      StackMap stack:
            aload 1 /* optimisticType */
            areturn
         6: .line 5017
      StackMap locals:
      StackMap stack:
            getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
            ifne 7
            aload 2 /* narrowest */
            invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 5018
      StackMap locals:
      StackMap stack:
            aload 2 /* narrowest */
            areturn
        end local 2 // jdk.nashorn.internal.codegen.types.Type narrowest
        end local 1 // jdk.nashorn.internal.codegen.types.Type optimisticType
        end local 0 // jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
            1    8     1  optimisticType  Ljdk/nashorn/internal/codegen/types/Type;
            3    8     2       narrowest  Ljdk/nashorn/internal/codegen/types/Type;
}
SourceFile: "CodeGenerator.java"
NestHost: jdk.nashorn.internal.codegen.CodeGenerator
InnerClasses:
  private ContinuationInfo = jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo of jdk.nashorn.internal.codegen.CodeGenerator
  private abstract OptimisticOperation = jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation of jdk.nashorn.internal.codegen.CodeGenerator
  private final TypeBounds = jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds of jdk.nashorn.internal.codegen.CodeGenerator
  public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants