Microsoft.JScript.While.TranslateToIL C# (CSharp) Method

TranslateToIL() private method

private TranslateToIL ( ILGenerator il, Type rtype ) : void
il System.Reflection.Emit.ILGenerator
rtype System.Type
return void
      internal override void TranslateToIL(ILGenerator il, Type rtype){
        //This assumes rtype == Void.class
        Label loop_start = il.DefineLabel();
        Label loop_end = il.DefineLabel();
        Label body = il.DefineLabel();
        compilerGlobals.BreakLabelStack.Push(loop_end);
        compilerGlobals.ContinueLabelStack.Push(loop_start);
        il.Emit(OpCodes.Br, loop_start);
        il.MarkLabel(body);
        this.body.TranslateToIL(il, Typeob.Void);
        il.MarkLabel(loop_start);
        this.context.EmitLineInfo(il);
        this.condition.TranslateToConditionalBranch(il, true, body, false);
        il.MarkLabel(loop_end);

        compilerGlobals.BreakLabelStack.Pop();
        compilerGlobals.ContinueLabelStack.Pop();
      }