Pop() публичный Метод

public Pop ( ) : object
Результат object
Пример #1
0
 public override int Run(InterpretedFrame frame)
 {
     object value = frame.Pop();
     object self = frame.Pop();
     _field.SetValue(self, value);
     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(((int)left) | ((int)right));
     return +1;
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }
Пример #5
0
        public override int Run(InterpretedFrame frame)
        {
            object value = frame.Pop();
            object self = frame.Pop();

            if (self == null)
            {
                throw new NullReferenceException();
            }

            _field.SetValue(self, value);
            return +1;
        }
Пример #6
0
 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)
 {
     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;
 }
Пример #8
0
 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(((Char)left) > (Char)right);
     }
     return +1;
 }
Пример #9
0
 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;
 }
Пример #10
0
 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 right = frame.Pop();
     object left = frame.Pop();
     if (left == null || right == null)
     {
         frame.Push(_nullValue);
     }
     else
     {
         frame.Push(((char)left) <= (char)right);
     }
     return +1;
 }
Пример #12
0
        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;
        }
Пример #13
0
        public override int Run(InterpretedFrame frame)
        {
            object self = frame.Pop();

            NullCheck(self);
            frame.Push(_field.GetValue(self));
            return +1;
        }
Пример #14
0
 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(ScriptingRuntimeHelpers.BooleanToObject(right == null));
     }
     else if (right == null)
     {
         frame.Push(ScriptingRuntimeHelpers.Boolean_False);
     }
     else
     {
         frame.Push(ScriptingRuntimeHelpers.BooleanToObject(((short)left) == ((short)right)));
     }
     return +1;
 }
Пример #16
0
 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;
 }
Пример #17
0
 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;
 }
Пример #18
0
 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;
 }
Пример #19
0
 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;
 }
Пример #20
0
 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;
 }
Пример #21
0
 public override int Run(InterpretedFrame frame)
 {
     object value = frame.Pop();
     if (value == null)
     {
         frame.Push(null);
     }
     else
     {
         frame.Push((short)(~(short)value));
     }
     return 1;
 }
Пример #22
0
 public override int Run(InterpretedFrame frame)
 {
     object obj = frame.Pop();
     if (obj == null)
     {
         frame.Push(null);
     }
     else
     {
         frame.Push((ushort)(~(ushort)obj));
     }
     return 1;
 }
Пример #23
0
 public override int Run(InterpretedFrame frame)
 {
     var value = frame.Pop();
     if (value == null)
     {
         frame.Push(null);
     }
     else
     {
         frame.Push((bool)value ? ScriptingRuntimeHelpers.False : ScriptingRuntimeHelpers.True);
     }
     return +1;
 }
Пример #24
0
 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;
 }
Пример #25
0
 public override int Run(InterpretedFrame frame)
 {
     object obj = frame.Pop();
     if (obj == null)
     {
         frame.Push(null);
     }
     else
     {
         frame.Push(~(long)obj);
     }
     return +1;
 }
Пример #26
0
 public override int Run(InterpretedFrame frame)
 {
     object obj = frame.Pop();
     if (obj == null)
     {
         frame.Push(null);
     }
     else
     {
         frame.Push(unchecked(-(float)obj));
     }
     return 1;
 }
Пример #27
0
 public override int Run(InterpretedFrame frame)
 {
     object value = frame.Pop();
     if (value == null)
     {
         frame.Push(null);
     }
     else
     {
         frame.Push(~(long)value);
     }
     return +1;
 }
Пример #28
0
 public override int Run(InterpretedFrame frame)
 {
     // ReSharper disable once EqualExpressionComparison
     frame.Push(frame.Pop() != frame.Pop());
     return(1);
 }
Пример #29
0
 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)
 {
     GC.KeepAlive(frame.Pop());
     throw new RethrowException();
 }
Пример #31
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(ScriptingRuntimeHelpers.BooleanToObject(_type.IsInstanceOfType(frame.Pop())));
     return(+1);
 }
Пример #32
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Data[Index] = frame.Pop();
     return(1);
 }
Пример #33
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(_type.IsInstanceOfType(frame.Pop()));
     return(+1);
 }
Пример #34
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(_field.GetValue(frame.Pop()));
     return +1;
 }
Пример #35
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() != frame.Pop()));
     return +1;
 }
Пример #36
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() == frame.Pop()));
     return(+1);
 }
Пример #37
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(ScriptingRuntimeHelpers.BooleanToObject(frame.Pop() != frame.Pop())); // Note: Pop returns different value on each call
     return(+1);
 }
Пример #38
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Push(frame.Pop() != frame.Pop());
     return(1);
 }
Пример #39
0
        public override int Run(InterpretedFrame frame)
        {
            object exception = frame.Pop();

            throw new RethrowException();
        }
Пример #40
0
 public override int Run(InterpretedFrame frame)
 {
     frame.Pop();
     return(+1);
 }
Пример #41
0
        public override int Run(InterpretedFrame frame)
        {
            int target;

            return(_cases.TryGetValue((T)frame.Pop() !, out target) ? target : 1);
        }
Пример #42
0
        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);
        }