示例#1
0
文件: InsnSend.cs 项目: takuto-h/rhea
 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);
 }
示例#2
0
文件: InsnCall.cs 项目: takuto-h/rhea
 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);
 }