Exemplo n.º 1
0
        public override int Run(InterpretedFrame frame)
        {
            int first = frame.StackIndex - _argumentCount;

            object[] args = new object[1 + _argumentCount];
            args[0] = _site;
            for (int i = 0; i < _argumentCount; i++)
            {
                args[1 + i] = frame.Data[first + i];
            }

            object ret = _target.InvokeInstance(_targetDelegate, args);

            if (_isVoid)
            {
                frame.StackIndex = first;
            }
            else
            {
                frame.Data[first] = ret;
                frame.StackIndex  = first + 1;
            }

            return(1);
        }