//----------------------------------------------------------------------------------------------------------------------------------------------------- protected override void OnEmitLoad(ILGenerator il) { var dontLeaveValueOnStack = (m_Operator as IDontLeaveValueOnStack); if (ShouldLeaveValueOnStack) { EnsureOperandLeavesValueOnStack(m_Operand as IExpressionOperand); if (dontLeaveValueOnStack != null) { dontLeaveValueOnStack.ForceLeaveFalueOnStack(); } } m_Operator.Emit(il, (IOperand <TOperand>)m_Operand); if (!ShouldLeaveValueOnStack && dontLeaveValueOnStack == null) { il.Emit(OpCodes.Pop); } }