public static new IoObject slotMethod(IoObject target, IoObject locals, IoObject message) { IoState state = target.state; IoBlock self = IoBlock.createObject(state); IoMessage m = message as IoMessage; int nargs = m.args.Count; IoMessage lastArgAsMessage = (nargs > 0) ? m.rawArgAt(nargs - 1) : state.nilMessage; int i; self.containedMessage = lastArgAsMessage; self.isActivatable = true; for (i = 0; i < nargs - 1; i ++) { IoMessage argMessage = m.rawArgAt(i); IoSeq name = argMessage.messageName; self.argNames.Add(name); } return self; }
public new static IoObject slotBlock(IoObject target, IoObject locals, IoObject m) { IoBlock self = target as IoBlock; self = IoBlock.slotMethod(target, locals, m) as IoBlock; self.scope = locals; self.isActivatable = false; return(self); }