void EmitMoveNext_NoResumePoints(EmitContext ec, Block original_block)
{
ec.EmitThis();
ec.Emit(OpCodes.Ldfld, storey.PC.Spec);
ec.EmitThis();
ec.EmitInt((int)IteratorStorey.State.After);
ec.Emit(OpCodes.Stfld, storey.PC.Spec);
// We only care if the PC is zero (start executing) or non-zero (don't do anything)
ec.Emit(OpCodes.Brtrue, move_next_error);
iterator_body_end = ec.DefineLabel();
SymbolWriter.StartIteratorBody(ec);
original_block.Emit(ec);
SymbolWriter.EndIteratorBody(ec);
ec.MarkLabel(iterator_body_end);
EmitMoveNextEpilogue(ec);
ec.MarkLabel(move_next_error);
if (ReturnType.Kind != MemberKind.Void)
{
ec.EmitInt(0);
ec.Emit(OpCodes.Ret);
}
}