public class org.eclipse.jdt.internal.compiler.ast.WhileStatement extends org.eclipse.jdt.internal.compiler.ast.Statement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.ast.WhileStatement
  super_class: org.eclipse.jdt.internal.compiler.ast.Statement
{
  public org.eclipse.jdt.internal.compiler.ast.Expression condition;
    descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Expression;
    flags: (0x0001) ACC_PUBLIC

  public org.eclipse.jdt.internal.compiler.ast.Statement action;
    descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Statement;
    flags: (0x0001) ACC_PUBLIC

  private org.eclipse.jdt.internal.compiler.codegen.BranchLabel breakLabel;
    descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.internal.compiler.codegen.BranchLabel continueLabel;
    descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
    flags: (0x0002) ACC_PRIVATE

  int preCondInitStateIndex;
    descriptor: I
    flags: (0x0000) 

  int condIfTrueInitStateIndex;
    descriptor: I
    flags: (0x0000) 

  int mergedInitStateIndex;
    descriptor: I
    flags: (0x0000) 

  public void <init>(org.eclipse.jdt.internal.compiler.ast.Expression, org.eclipse.jdt.internal.compiler.ast.Statement, int, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/ast/Statement;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.Expression condition
        start local 2 // org.eclipse.jdt.internal.compiler.ast.Statement action
        start local 3 // int s
        start local 4 // int e
         0: .line 38
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.compiler.ast.Statement.<init>:()V
         1: .line 34
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
         2: .line 35
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
         3: .line 36
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
         4: .line 40
            aload 0 /* this */
            aload 1 /* condition */
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
         5: .line 41
            aload 0 /* this */
            aload 2 /* action */
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
         6: .line 43
            aload 2 /* action */
            instanceof org.eclipse.jdt.internal.compiler.ast.EmptyStatement
            ifeq 7
            aload 2 /* action */
            dup
            getfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
            iconst_1
            ior
            putfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
         7: .line 44
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.ast.Expression org.eclipse.jdt.internal.compiler.ast.Statement int int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* s */
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceStart:I
         8: .line 45
            aload 0 /* this */
            iload 4 /* e */
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceEnd:I
         9: .line 46
            return
        end local 4 // int e
        end local 3 // int s
        end local 2 // org.eclipse.jdt.internal.compiler.ast.Statement action
        end local 1 // org.eclipse.jdt.internal.compiler.ast.Expression condition
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            0   10     1  condition  Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            0   10     2     action  Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            0   10     3          s  I
            0   10     4          e  I
    MethodParameters:
           Name  Flags
      condition  
      action     
      s          
      e          

  public org.eclipse.jdt.internal.compiler.flow.FlowInfo analyseCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.flow.FlowContext, org.eclipse.jdt.internal.compiler.flow.FlowInfo);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=17, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        start local 3 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
         0: .line 51
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
            dup
            invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
         1: .line 52
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
            dup
            invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
         2: .line 53
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.reachMode:()I
            iconst_3
            iand
            ifeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* initialComplaintLevel */
        start local 4 // int initialComplaintLevel
         5: .line 55
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            astore 5 /* cst */
        start local 5 // org.eclipse.jdt.internal.compiler.impl.Constant cst
         6: .line 56
            aload 5 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 7
            aload 5 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: int org.eclipse.jdt.internal.compiler.impl.Constant
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 6 /* isConditionTrue */
        start local 6 // boolean isConditionTrue
         9: .line 57
            aload 5 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 10
            aload 5 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifne 10
            iconst_1
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 7 /* isConditionFalse */
        start local 7 // boolean isConditionFalse
        12: .line 59
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.optimizedBooleanConstant:()Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            astore 5 /* cst */
        13: .line 60
            aload 5 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 14
            aload 5 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifeq 14
            iconst_1
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 8 /* isConditionOptimizedTrue */
        start local 8 // boolean isConditionOptimizedTrue
        16: .line 61
            aload 5 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 17
            aload 5 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifne 17
            iconst_1
            goto 18
      StackMap locals: int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 9 /* isConditionOptimizedFalse */
        start local 9 // boolean isConditionOptimizedFalse
        19: .line 63
            aload 0 /* this */
            aload 1 /* currentScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
        20: .line 65
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.nullInfoLessUnconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            astore 11 /* condInfo */
        start local 11 // org.eclipse.jdt.internal.compiler.flow.FlowInfo condInfo
        21: .line 70
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
        22: .line 71
            aload 1 /* currentScope */
        23: .line 73
            new org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
            dup
            aload 2 /* flowContext */
            aload 3 /* flowInfo */
            aload 0 /* this */
            aconst_null
        24: .line 74
            aconst_null
            aload 1 /* currentScope */
            iconst_1
        25: .line 73
            invokespecial org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.<init>:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Z)V
        26: .line 72
            dup
            astore 10 /* condLoopContext */
        start local 10 // org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext condLoopContext
        27: .line 75
            aload 11 /* condInfo */
        28: .line 70
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.analyseCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            astore 11 /* condInfo */
        29: .line 76
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            aload 1 /* currentScope */
            aload 2 /* flowContext */
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.checkNPEbyUnboxing:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        30: .line 81
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnull 32
        31: .line 82
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
            ifeq 47
            aload 1 /* currentScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
            getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.complianceLevel:J
            ldc 3080192
            lcmp
            ifgt 47
        32: .line 83
      StackMap locals: int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack:
            aload 10 /* condLoopContext */
            aload 1 /* currentScope */
        33: .line 84
            aload 11 /* condInfo */
        34: .line 83
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        35: .line 85
            aload 10 /* condLoopContext */
            aload 1 /* currentScope */
        36: .line 86
            aload 11 /* condInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
        37: .line 85
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        38: .line 87
            iload 6 /* isConditionTrue */
            ifeq 40
        39: .line 88
            getstatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.DEAD_END:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            areturn
        40: .line 90
      StackMap locals:
      StackMap stack:
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            aload 11 /* condInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            astore 15 /* mergedInfo */
        start local 15 // org.eclipse.jdt.internal.compiler.flow.FlowInfo mergedInfo
        41: .line 91
            iload 8 /* isConditionOptimizedTrue */
            ifeq 43
        42: .line 92
            aload 15 /* mergedInfo */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.setReachMode:(I)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            pop
        43: .line 94
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo top top top org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack:
            aload 0 /* this */
        44: .line 95
            aload 1 /* currentScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            aload 15 /* mergedInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
        45: .line 94
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
        46: .line 96
            aload 15 /* mergedInfo */
            areturn
        end local 15 // org.eclipse.jdt.internal.compiler.flow.FlowInfo mergedInfo
        47: .line 102
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
            dup
        48: .line 103
            aload 2 /* flowContext */
        49: .line 104
            aload 3 /* flowInfo */
        50: .line 105
            aload 0 /* this */
        51: .line 106
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
        52: .line 107
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
        53: .line 108
            aload 1 /* currentScope */
        54: .line 109
            iconst_1
        55: .line 102
            invokespecial org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.<init>:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Z)V
        56: .line 101
            astore 12 /* loopingContext */
        start local 12 // org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext loopingContext
        57: .line 110
            aload 12 /* loopingContext */
            aload 10 /* condLoopContext */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.copyNullCheckedFieldsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;)V
        58: .line 111
            iload 7 /* isConditionFalse */
            ifeq 61
        59: .line 112
            getstatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.DEAD_END:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            astore 13 /* actionInfo */
        start local 13 // org.eclipse.jdt.internal.compiler.flow.FlowInfo actionInfo
        60: .line 113
            goto 64
        end local 13 // org.eclipse.jdt.internal.compiler.flow.FlowInfo actionInfo
        61: .line 114
      StackMap locals: org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
      StackMap stack:
            aload 11 /* condInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenTrue:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            astore 13 /* actionInfo */
        start local 13 // org.eclipse.jdt.internal.compiler.flow.FlowInfo actionInfo
        62: .line 115
            iload 9 /* isConditionOptimizedFalse */
            ifeq 64
        63: .line 116
            aload 13 /* actionInfo */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.setReachMode:(I)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            pop
        64: .line 121
      StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack:
            aload 0 /* this */
        65: .line 122
            aload 1 /* currentScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
        66: .line 123
            aload 11 /* condInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenTrue:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
        67: .line 122
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
        68: .line 121
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
        69: .line 125
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            aload 13 /* actionInfo */
            aload 1 /* currentScope */
            iload 4 /* initialComplaintLevel */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.complainIfUnreachable:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;IZ)I
            iconst_2
            if_icmpge 71
        70: .line 126
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            aload 1 /* currentScope */
            aload 12 /* loopingContext */
            aload 13 /* actionInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.analyseCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            astore 13 /* actionInfo */
        71: .line 130
      StackMap locals:
      StackMap stack:
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            astore 14 /* exitBranch */
        start local 14 // org.eclipse.jdt.internal.compiler.flow.FlowInfo exitBranch
        72: .line 132
            aload 13 /* actionInfo */
            getfield org.eclipse.jdt.internal.compiler.flow.FlowInfo.tagBits:I
            aload 12 /* loopingContext */
            getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
            iand
            istore 15 /* combinedTagBits */
        start local 15 // int combinedTagBits
        73: .line 133
            iload 15 /* combinedTagBits */
            iconst_3
            iand
            ifeq 85
        74: .line 134
            iload 15 /* combinedTagBits */
            iconst_1
            iand
            ifeq 76
        75: .line 135
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
        76: .line 136
      StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo int
      StackMap stack:
            aload 14 /* exitBranch */
            aload 11 /* condInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            pop
        77: .line 137
            aload 13 /* actionInfo */
            aload 12 /* loopingContext */
            getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            astore 13 /* actionInfo */
        78: .line 138
            aload 10 /* condLoopContext */
            aload 1 /* currentScope */
        79: .line 139
            aload 13 /* actionInfo */
            iconst_0
        80: .line 138
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Z)V
        81: .line 140
            aload 12 /* loopingContext */
            aload 1 /* currentScope */
        82: .line 141
            aload 13 /* actionInfo */
            iconst_0
        83: .line 140
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Z)V
        84: .line 142
            goto 102
        85: .line 143
      StackMap locals:
      StackMap stack:
            aload 10 /* condLoopContext */
            aload 1 /* currentScope */
        86: .line 144
            aload 11 /* condInfo */
        87: .line 143
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        88: .line 145
            aload 13 /* actionInfo */
            aload 12 /* loopingContext */
            getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            astore 13 /* actionInfo */
        89: .line 146
            aload 10 /* condLoopContext */
            aload 1 /* currentScope */
        90: .line 147
            aload 13 /* actionInfo */
        91: .line 146
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        92: .line 148
            aload 12 /* loopingContext */
            aload 1 /* currentScope */
        93: .line 149
            aload 13 /* actionInfo */
        94: .line 148
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        95: .line 150
            aload 12 /* loopingContext */
            aload 1 /* currentScope */
        96: .line 151
            aload 13 /* actionInfo */
        97: .line 150
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        98: .line 152
            aload 14 /* exitBranch */
        99: .line 154
            aload 13 /* actionInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
       100: .line 153
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addPotentialInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
       101: .line 155
            aload 11 /* condInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            pop
       102: .line 157
      StackMap locals:
      StackMap stack:
            aload 12 /* loopingContext */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.hasEscapingExceptions:()Z
            ifeq 107
       103: .line 158
            aload 3 /* flowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            astore 16 /* loopbackFlowInfo */
        start local 16 // org.eclipse.jdt.internal.compiler.flow.FlowInfo loopbackFlowInfo
       104: .line 159
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            ifnull 106
       105: .line 161
            aload 16 /* loopbackFlowInfo */
            aload 16 /* loopbackFlowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            aload 13 /* actionInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.addNullInfoFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            astore 16 /* loopbackFlowInfo */
       106: .line 163
      StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack:
            aload 12 /* loopingContext */
            aload 16 /* loopbackFlowInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.simulateThrowAfterLoopBack:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
        end local 16 // org.eclipse.jdt.internal.compiler.flow.FlowInfo loopbackFlowInfo
        end local 15 // int combinedTagBits
       107: .line 169
      StackMap locals:
      StackMap stack:
            aload 12 /* loopingContext */
            getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
       108: .line 170
            iconst_3
       109: .line 169
            iand
            ifeq 111
       110: .line 171
            aload 12 /* loopingContext */
            getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            goto 112
       111: .line 172
      StackMap locals:
      StackMap stack:
            aload 3 /* flowInfo */
            aload 12 /* loopingContext */
            getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
       112: .line 173
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo
            iload 8 /* isConditionOptimizedTrue */
       113: .line 174
            aload 14 /* exitBranch */
       114: .line 175
            iload 9 /* isConditionOptimizedFalse */
       115: .line 176
            iload 6 /* isConditionTrue */
            ifeq 116
            iconst_0
            goto 117
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.flow.FlowInfo int
       116: iconst_1
       117: .line 168
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.FlowInfo
      StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.flow.FlowInfo int int
            invokestatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedOptimizedBranches:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ZLorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ZZ)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
            astore 15 /* mergedInfo */
        start local 15 // org.eclipse.jdt.internal.compiler.flow.FlowInfo mergedInfo
       118: .line 177
            aload 0 /* this */
            aload 1 /* currentScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            aload 15 /* mergedInfo */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
            putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
       119: .line 178
            aload 15 /* mergedInfo */
            areturn
        end local 15 // org.eclipse.jdt.internal.compiler.flow.FlowInfo mergedInfo
        end local 14 // org.eclipse.jdt.internal.compiler.flow.FlowInfo exitBranch
        end local 13 // org.eclipse.jdt.internal.compiler.flow.FlowInfo actionInfo
        end local 12 // org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext loopingContext
        end local 11 // org.eclipse.jdt.internal.compiler.flow.FlowInfo condInfo
        end local 10 // org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext condLoopContext
        end local 9 // boolean isConditionOptimizedFalse
        end local 8 // boolean isConditionOptimizedTrue
        end local 7 // boolean isConditionFalse
        end local 6 // boolean isConditionTrue
        end local 5 // org.eclipse.jdt.internal.compiler.impl.Constant cst
        end local 4 // int initialComplaintLevel
        end local 3 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        end local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0  120     0                       this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            0  120     1               currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0  120     2                flowContext  Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
            0  120     3                   flowInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            5  120     4      initialComplaintLevel  I
            6  120     5                        cst  Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            9  120     6            isConditionTrue  Z
           12  120     7           isConditionFalse  Z
           16  120     8   isConditionOptimizedTrue  Z
           19  120     9  isConditionOptimizedFalse  Z
           27  120    10            condLoopContext  Lorg/eclipse/jdt/internal/compiler/flow/LoopingFlowContext;
           21  120    11                   condInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
           57  120    12             loopingContext  Lorg/eclipse/jdt/internal/compiler/flow/LoopingFlowContext;
           60   61    13                 actionInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
           62  120    13                 actionInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
           72  120    14                 exitBranch  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
           41   47    15                 mergedInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
           73  107    15            combinedTagBits  I
          104  107    16           loopbackFlowInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
          118  120    15                 mergedInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
    MethodParameters:
              Name  Flags
      currentScope  
      flowContext   
      flowInfo      

  public void generateCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
         0: .line 190
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.bits:I
            ldc -2147483648
            iand
            ifne 2
         1: .line 191
            return
         2: .line 193
      StackMap locals:
      StackMap stack:
            aload 2 /* codeStream */
            getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
            istore 3 /* pc */
        start local 3 // int pc
         3: .line 194
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.optimizedBooleanConstant:()Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            astore 4 /* cst */
        start local 4 // org.eclipse.jdt.internal.compiler.impl.Constant cst
         4: .line 195
            aload 4 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 5
            aload 4 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifne 5
            iconst_1
            goto 6
      StackMap locals: int org.eclipse.jdt.internal.compiler.impl.Constant
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* isConditionOptimizedFalse */
        start local 5 // boolean isConditionOptimizedFalse
         7: .line 196
            iload 5 /* isConditionOptimizedFalse */
            ifeq 14
         8: .line 197
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            aload 1 /* currentScope */
            aload 2 /* codeStream */
            iconst_0
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
         9: .line 199
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
            iconst_m1
            if_icmpeq 12
        10: .line 200
            aload 2 /* codeStream */
            aload 1 /* currentScope */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
        11: .line 201
            aload 2 /* codeStream */
            aload 1 /* currentScope */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
        12: .line 203
      StackMap locals: int
      StackMap stack:
            aload 2 /* codeStream */
            iload 3 /* pc */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceStart:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
        13: .line 204
            return
        14: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            aload 2 /* codeStream */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.initialize:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
        15: .line 210
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            ifnonnull 25
        16: .line 212
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpne 33
        17: .line 213
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
        18: .line 214
            aload 1 /* currentScope */
        19: .line 215
            aload 2 /* codeStream */
        20: .line 216
            aconst_null
        21: .line 217
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
        22: .line 218
            iconst_1
        23: .line 213
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateOptimizedBoolean:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Z)V
        24: .line 220
            goto 33
        25: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            aload 2 /* codeStream */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.initialize:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
        26: .line 222
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 28
        27: .line 223
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifne 33
        28: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnull 33
        29: .line 225
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
            ifne 33
        30: .line 226
            aload 2 /* codeStream */
            getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
            istore 6 /* jumpPC */
        start local 6 // int jumpPC
        31: .line 227
            aload 2 /* codeStream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.goto_:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
        32: .line 228
            aload 2 /* codeStream */
            iload 6 /* jumpPC */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            getfield org.eclipse.jdt.internal.compiler.ast.Expression.sourceStart:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
        end local 6 // int jumpPC
        33: .line 232
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
            dup
            aload 2 /* codeStream */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
            astore 6 /* actionLabel */
        start local 6 // org.eclipse.jdt.internal.compiler.codegen.BranchLabel actionLabel
        34: .line 233
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnull 46
        35: .line 234
            aload 6 /* actionLabel */
            dup
            getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
            iconst_2
            ior
            putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
        36: .line 236
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
            iconst_m1
            if_icmpeq 41
        37: .line 238
            aload 2 /* codeStream */
        38: .line 239
            aload 1 /* currentScope */
        39: .line 240
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
        40: .line 238
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
        41: .line 242
      StackMap locals: org.eclipse.jdt.internal.compiler.codegen.BranchLabel
      StackMap stack:
            aload 6 /* actionLabel */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
        42: .line 243
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            aload 1 /* currentScope */
            aload 2 /* codeStream */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
        43: .line 245
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
            iconst_m1
            if_icmpeq 47
        44: .line 246
            aload 2 /* codeStream */
            aload 1 /* currentScope */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
        45: .line 248
            goto 47
        46: .line 249
      StackMap locals:
      StackMap stack:
            aload 6 /* actionLabel */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
        47: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            ifnull 56
        48: .line 253
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
        49: .line 254
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
        50: .line 255
            aload 1 /* currentScope */
        51: .line 256
            aload 2 /* codeStream */
        52: .line 257
            aload 6 /* actionLabel */
        53: .line 258
            aconst_null
        54: .line 259
            iconst_1
        55: .line 254
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateOptimizedBoolean:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Z)V
        56: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
            iconst_m1
            if_icmpeq 59
        57: .line 264
            aload 2 /* codeStream */
            aload 1 /* currentScope */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
        58: .line 265
            aload 2 /* codeStream */
            aload 1 /* currentScope */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
        59: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
        60: .line 268
            aload 2 /* codeStream */
            iload 3 /* pc */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceStart:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
        61: .line 269
            return
        end local 6 // org.eclipse.jdt.internal.compiler.codegen.BranchLabel actionLabel
        end local 5 // boolean isConditionOptimizedFalse
        end local 4 // org.eclipse.jdt.internal.compiler.impl.Constant cst
        end local 3 // int pc
        end local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   62     0                       this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            0   62     1               currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0   62     2                 codeStream  Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
            3   62     3                         pc  I
            4   62     4                        cst  Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            7   62     5  isConditionOptimizedFalse  Z
           31   33     6                     jumpPC  I
           34   62     6                actionLabel  Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
    MethodParameters:
              Name  Flags
      currentScope  
      codeStream    

  public void resolve(org.eclipse.jdt.internal.compiler.lookup.BlockScope);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
         0: .line 274
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            aload 1 /* scope */
            getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.BOOLEAN:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.resolveTypeExpecting:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 2 /* type */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
         1: .line 275
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            aload 1 /* scope */
            aload 2 /* type */
            aload 2 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.computeConversion:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
         2: .line 276
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnull 4
         3: .line 277
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            aload 1 /* scope */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.resolve:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
         4: .line 278
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            return
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            0    5     1  scope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            1    5     2   type  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
       Name  Flags
      scope  

  public java.lang.StringBuffer printStatement(int, java.lang.StringBuffer);
    descriptor: (ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
        start local 1 // int tab
        start local 2 // java.lang.StringBuffer output
         0: .line 283
            iload 1 /* tab */
            aload 2 /* output */
            invokestatic org.eclipse.jdt.internal.compiler.ast.WhileStatement.printIndent:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            ldc "while ("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         1: .line 284
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            iconst_0
            aload 2 /* output */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.printExpression:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            bipush 41
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         2: .line 285
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnonnull 4
         3: .line 286
            aload 2 /* output */
            bipush 59
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
            goto 5
         4: .line 288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            iload 1 /* tab */
            iconst_1
            iadd
            aload 2 /* output */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.printStatement:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            pop
         5: .line 289
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            areturn
        end local 2 // java.lang.StringBuffer output
        end local 1 // int tab
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            0    6     1     tab  I
            0    6     2  output  Ljava/lang/StringBuffer;
    MethodParameters:
        Name  Flags
      tab     
      output  

  public void traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.BlockScope);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
        start local 1 // org.eclipse.jdt.internal.compiler.ASTVisitor visitor
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.BlockScope blockScope
         0: .line 297
            aload 1 /* visitor */
            aload 0 /* this */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.visit:(Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Z
            ifeq 4
         1: .line 298
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            aload 1 /* visitor */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
         2: .line 299
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnull 4
         3: .line 300
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            aload 1 /* visitor */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
         4: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* visitor */
            aload 0 /* this */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
         5: .line 303
            return
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.BlockScope blockScope
        end local 1 // org.eclipse.jdt.internal.compiler.ASTVisitor visitor
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            0    6     1     visitor  Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
            0    6     2  blockScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
    MethodParameters:
            Name  Flags
      visitor     
      blockScope  

  public boolean doesNotCompleteNormally();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
         0: .line 307
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            astore 1 /* cst */
        start local 1 // org.eclipse.jdt.internal.compiler.impl.Constant cst
         1: .line 308
            aload 1 /* cst */
            ifnull 3
            aload 1 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 2
            aload 1 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifne 3
      StackMap locals: org.eclipse.jdt.internal.compiler.impl.Constant
      StackMap stack:
         2: iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* isConditionTrue */
        start local 2 // boolean isConditionTrue
         5: .line 309
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.optimizedBooleanConstant:()Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            astore 1 /* cst */
         6: .line 310
            aload 1 /* cst */
            ifnonnull 7
            iconst_1
            goto 9
      StackMap locals: int
      StackMap stack:
         7: aload 1 /* cst */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            if_acmpeq 8
            aload 1 /* cst */
            invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 3 /* isConditionOptimizedTrue */
        start local 3 // boolean isConditionOptimizedTrue
        10: .line 311
            iload 2 /* isConditionTrue */
            ifne 11
            iload 3 /* isConditionOptimizedTrue */
            ifeq 13
      StackMap locals: int
      StackMap stack:
        11: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            ifnull 12
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.breaksOut:([C)Z
            ifne 13
      StackMap locals:
      StackMap stack:
        12: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        end local 3 // boolean isConditionOptimizedTrue
        end local 2 // boolean isConditionTrue
        end local 1 // org.eclipse.jdt.internal.compiler.impl.Constant cst
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   14     0                      this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
            1   14     1                       cst  Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            5   14     2           isConditionTrue  Z
           10   14     3  isConditionOptimizedTrue  Z

  public boolean completesByContinue();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
         0: .line 316
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.continuesAtOuterLabel:()Z
            ireturn
        end local 0 // org.eclipse.jdt.internal.compiler.ast.WhileStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
}
SourceFile: "WhileStatement.java"