public void EmitGoto(OpCode gotoOpCode, JumpValidator validator = null) { if (validator != null) { TryValidate(validator); } _ctx.Generator.Emit(gotoOpCode, _label); }
private void TryValidate(JumpValidator validator) { var current = _ctx.CurrentScope; if (IsMarked) { validator(current, MarkScope); } else { _deferredValidations.Add(new KeyValuePair <Scope, JumpValidator>(current, validator)); } }