anchor.diff:      : super(backend, work, parameters, parameterNames),
         setup = new CodeBuffer(),
         newParameters = new CodeBuffer(),
  -      labels = <String>[];
  +      labels = <String>[],
  +      defaultClauseUsedInBailoutStack = <bool>[];
   
     String pushLabel() {
       String label = 'L${labelId++}';
  
positive.code:   final CodeBuffer newParameters;
    final List<String> labels;
    int labelId = 0;
  
    SsaBailoutPropagator propagator;
    HInstruction savedFirstInstruction;
  
negative.code:   void startBailoutCase(List<HTypeGuard> bailouts1,
                          List<HTypeGuard> bailouts2) {
      indent--;
      if (!defaultClauseUsedInBailoutStack.last() &&
          bailouts1.length + bailouts2.length >= 2) {
        addIndented('default:\n');
        int len = defaultClauseUsedInBailoutStack.length;
        defaultClauseUsedInBailoutStack[len - 1] = true;
      } else {
        handleBailoutCase(bailouts1);
        handleBailoutCase(bailouts2);
      }
      indent++;
    }
  
    void handleBailoutCase(List<HTypeGuard> guards) {
      if (!defaultClauseUsedInBailoutStack.last() && guards.length >= 2) {
        addIndented('default:\n');
        int len = defaultClauseUsedInBailoutStack.length;
        defaultClauseUsedInBailoutStack[len - 1] = true;
      } else {
        for (int i = 0, len = guards.length; i < len; i++) {
          addIndented('case ${guards[i].state}:\n');
        }
      }
    }
  
    void startBailoutSwitch() {
      defaultClauseUsedInBailoutStack.add(false);
      addIndented('switch (state) {\n');
      indent++;
      addIndented('case 0:\n');
  