public override int Run(InterpretedFrame frame) { object left = frame.Pop(); object right = frame.Pop(); if (left == null || right == null) { frame.Push(null); return +1; } frame.Push(((int)left) | ((int)right)); return +1; }
public override int Run(InterpretedFrame frame) { var left = frame.Pop(); var right = frame.Pop(); if (left == null || right == null) { frame.Push(null); return +1; } frame.Push(((Int64)left) | ((Int64)right)); return +1; }
public override int Run(InterpretedFrame frame) { object left = frame.Pop(); object right = frame.Pop(); if (left == null || right == null) { frame.Push(null); return 1; } frame.Push((long)left & (long)right); return 1; }
public override int Run(InterpretedFrame frame) { object value = frame.Pop(); if (value == null) { frame.Push(null); } else { frame.Push(~(long)value); } return +1; }
public override int Run(InterpretedFrame frame) { object obj = frame.Pop(); if (obj == null) { frame.Push(null); } else { frame.Push(unchecked(-(float)obj)); } return 1; }
public override int Run(InterpretedFrame frame) { object obj = frame.Pop(); if (obj == null) { frame.Push(null); } else { frame.Push(ScriptingRuntimeHelpers.Int32ToObject(unchecked((Int32)obj - 1))); } return +1; }
public override int Run(InterpretedFrame frame) { object value = frame.Pop(); if (value == null) { frame.Push(null); } else { frame.Push((bool)value ? ScriptingRuntimeHelpers.Boolean_False : ScriptingRuntimeHelpers.Boolean_True); } return +1; }
public override int Run(InterpretedFrame frame) { object obj = frame.Pop(); if (obj == null) { frame.Push(null); } else { frame.Push(unchecked((UInt16)((UInt16)obj - 1))); } return +1; }
public override int Run(InterpretedFrame frame) { object obj = frame.Pop(); if (obj == null) { frame.Push(null); } else { frame.Push((ushort)(~(ushort)obj)); } return 1; }
public override int Run(InterpretedFrame frame) { object obj = frame.Pop(); if (obj == null) { frame.Push(null); } else { frame.Push(~(long)obj); } return +1; }
public override int Run(InterpretedFrame frame) { object value = frame.Pop(); if (value == null) { frame.Push(null); } else { frame.Push((short)(~(short)value)); } return 1; }
public override int Run(InterpretedFrame frame) { object shift = frame.Pop(); object value = frame.Pop(); if (value == null || shift == null) { frame.Push(null); } else { frame.Push((short)((short)value >> (int)shift)); } return 1; }
public override int Run(InterpretedFrame frame) { object shift = frame.Pop(); object value = frame.Pop(); if (value == null || shift == null) { frame.Push(null); } else { frame.Push(((long)value) << ((int)shift)); } return +1; }
public override int Run(InterpretedFrame frame) { var shift = frame.Pop(); var value = frame.Pop(); if (value == null || shift == null) { frame.Push(null); } else { frame.Push(((Int64)value) >> ((int)shift)); } return +1; }
public override int Run(InterpretedFrame frame) { object right = frame.Pop(); object left = frame.Pop(); if (left == null || right == null) { frame.Push(_nullValue); } else { frame.Push(((short)left) <= (short)right); } return +1; }
public override int Run(InterpretedFrame frame) { var right = frame.Pop(); var left = frame.Pop(); if (left == null || right == null) { frame.Push(_nullValue); } else { frame.Push(((Int16)left) > (Int16)right); } return +1; }
public sealed override int Run(InterpretedFrame frame) { object obj = frame.Pop(); object converted; if (obj == null) { if (_isLiftedToNull) { converted = null; } else { // We cannot have null in a non-lifted numeric context. Throw the exception // about not Nullable object requiring a value. converted = (int)(int?)obj; throw ContractUtils.Unreachable; } } else { converted = Convert(obj); } frame.Push(converted); return +1; }
public override int Run(InterpretedFrame frame) { object self = frame.Pop(); NullCheck(self); frame.Push(_field.GetValue(self)); return +1; }
public override int Run(InterpretedFrame frame) { object right = frame.Pop(); object left = frame.Pop(); if (left == null) { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(right == null)); } else if (right == null) { frame.Push(ScriptingRuntimeHelpers.Boolean_False); } else { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(((short)left) == ((short)right))); } return +1; }
public override int Run(InterpretedFrame frame) { object right = frame.Pop(); object left = frame.Pop(); if (left == null) { frame.Push(right == null); } else if (right == null) { frame.Push(false); } else { frame.Push((sbyte)left == (sbyte)right); } return +1; }
public override int Run(InterpretedFrame frame) { object right = frame.Pop(); object left = frame.Pop(); if (left == null) { frame.Push(right != null); } else if (right == null) { frame.Push(true); } else { frame.Push((short)left != (short)right); } return +1; }
public override int Run(InterpretedFrame frame) { var right = frame.Pop(); var left = frame.Pop(); if (left == null) { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(right != null)); } else if (right == null) { frame.Push(ScriptingRuntimeHelpers.True); } else { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(((Int16)left) != ((Int16)right))); } return +1; }
public override int Run(InterpretedFrame frame) { Array array = Array.CreateInstance(_elementType, _elementCount); for (int i = _elementCount - 1; i >= 0; i--) { array.SetValue(frame.Pop(), i); } frame.Push(array); return +1; }
public override int Run(InterpretedFrame frame) { int length = ConvertHelper.ToInt32NoNull(frame.Pop()); if (length < 0) { // to make behavior aligned with array creation emitted by C# compiler throw new OverflowException(); } frame.Push(Array.CreateInstance(_elementType, length)); return +1; }
public override int Run(InterpretedFrame frame) { object self = frame.Pop(); if (self == null) { throw new NullReferenceException(); } frame.Push(_field.GetValue(self)); return +1; }
public override int Run(InterpretedFrame frame) { object right = frame.Pop(); object left = frame.Pop(); if (left == null || right == null) { frame.Push(_nullValue); } else { frame.Push((char)left >= (char)right); } return 1; }
public override int Run(InterpretedFrame frame) { frame.Push(Field.GetValue(null)); return(1); }
public override int Run(InterpretedFrame frame) { frame.Push(RuntimeHelpers.GetUninitializedObject(_type)); return(1); }
public override int Run(InterpretedFrame frame) { frame.Push(Activator.CreateInstance(_type)); return(1); }
public override int Run(InterpretedFrame frame) { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() != frame.Pop())); // Note: Pop returns different value on each call return(+1); }
public override int Run(InterpretedFrame frame) { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() == frame.Pop())); return(+1); }
public override int Run(InterpretedFrame frame) { object from = frame.Pop(); if (from == null) { frame.Push(null); } else { Type underlying = _t.GetTypeInfo().IsEnum ? Enum.GetUnderlyingType(_t) : _t; // Order checks in order of likelihood. int first as the vast majority of enums // are int-based, then long as that is sometimes used when required for a large set of flags // and so-on. if (underlying == typeof(int)) { // If from is neither an int nor a type assignable to int (viz. an int-backed enum) // this will cause an InvalidCastException, which is what this operation should // throw in this case. frame.Push(Enum.ToObject(_t, (int)from)); } else if (underlying == typeof(long)) { frame.Push(Enum.ToObject(_t, (long)from)); } else if (underlying == typeof(uint)) { frame.Push(Enum.ToObject(_t, (uint)from)); } else if (underlying == typeof(ulong)) { frame.Push(Enum.ToObject(_t, (ulong)from)); } else if (underlying == typeof(byte)) { frame.Push(Enum.ToObject(_t, (byte)from)); } else if (underlying == typeof(sbyte)) { frame.Push(Enum.ToObject(_t, (sbyte)from)); } else if (underlying == typeof(short)) { frame.Push(Enum.ToObject(_t, (short)from)); } else if (underlying == typeof(ushort)) { frame.Push(Enum.ToObject(_t, (ushort)from)); } else if (underlying == typeof(char)) { // Disallowed in C#, but allowed in CIL frame.Push(Enum.ToObject(_t, (char)from)); } else if (underlying == typeof(bool)) { // Disallowed in C#, but allowed in CIL frame.Push(Enum.ToObject(_t, (bool)from)); } else { throw new InvalidCastException(); } } return(1); }
public override int Run(InterpretedFrame frame) { frame.Push(frame.Pop() != frame.Pop()); return(1); }
public override int Run(InterpretedFrame frame) { var value = frame.Pop(); if (value == null) { frame.Push(null); } else { frame.Push((object)(SByte)(~(SByte)value)); } return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(_field.GetValue(obj: null)); return(+1); }
public override int Run(InterpretedFrame frame) { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(_type.IsInstanceOfType(frame.Pop()))); return(+1); }
public override int Run(InterpretedFrame frame) { var value = frame.Pop(); if (value == null) { frame.Push(null); } else { frame.Push((UInt16)(~(UInt16)value)); } return +1; }
public override int Run(InterpretedFrame frame) { // ReSharper disable once EqualExpressionComparison frame.Push(frame.Pop() != frame.Pop()); return(1); }
public override int Run(InterpretedFrame frame) { frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() != frame.Pop())); return +1; }
protected override void ConvertNull(InterpretedFrame frame) { frame.Push(null); }
public override int Run(InterpretedFrame frame) { frame.Push(_field.GetValue(frame.Pop())); return +1; }
public override int Run(InterpretedFrame frame) { frame.Push(_type.IsInstanceOfType(frame.Pop())); return(+1); }