Example #1
0
 public void Execute(VM vm)
 {
     List<IValue> args = new List<IValue>();
     for (int i = 0; i < mArgCount; i++)
     {
         args.Add(vm.Pop());
     }
     args.Reverse();
     IValue receiver = vm.Pop();
     receiver.Send(mSelector, args, vm, mInfo);
 }
Example #2
0
 public void Execute(VM vm)
 {
     List<IValue> args = new List<IValue>();
     for (int i = 0; i < mArgCount; i++)
     {
         args.Add(vm.Pop());
     }
     args.Reverse();
     IValue value = vm.Pop();
     IValueFunc func = value as IValueFunc;
     if (func == null)
     {
         throw new RheaException(
             string.Format("function required, but got {0}", value), mInfo
         );
     }
     func.Call(args, vm, mInfo);
 }