anchor.diff:      else
         lMethod := new System.Reflection.Emit.DynamicMethod(aSCopeName, typeof(Object), [typeof(ExecutionContext), typeof(object), Typeof(array of Object)], typeof(DynamicMethods), true);
       
  +    var lOldBreak := fBreak;
  +    var lOldContinue := fContinue;
  +    fBreak := nil;
  +    fContinue := nil;
       var lOldILG := fIlg;
       fILG := lMethod.GetILGenerator();
       var lOldExecutionContext := fExecutionContext;
  
positive.code:     fIlg := lOldILG;
      fExecutionContext := lOldExecutionContext;
      fLocals := lOldLocals;
      
      if aFunction <> nil then 
      exit lMethod.CreateDelegate(typeof(InternalFunctionDelegate));
      exit lMethod.CreateDelegate(typeof(InternalDelegate));
  
negative.code:   fContinue := fILG.DefineLabel;
    fBreak := filg.DefineLabel;
    MarkLabelled(fBreak, fContinue);
    filg.MarkLabel(Label(fContinue));
  
    WriteStatement(el.Body);
  
    WriteExpression(el.ExpressionElement);
    filg.Emit(Opcodes.Call, Utilities.method_GetObjAsBoolean);
    filg.Emit(Opcodes.Brtrue, Label(fContinue));
    filg.MarkLabel(Label(fBreak));
  
    fBreak := lOldBreak;
    fContinue := lOldContinue;
  