break;
}
// ------------- Arg-receive instructions ------------
case RECV_PRE_REQD_ARG: {
ReceivePreReqdArgInstr ra = (ReceivePreReqdArgInstr)instr;
int argIndex = ra.getArgIndex();
result = (argIndex < args.length) ? args[argIndex] : context.nil; // SSS FIXME: This check is only required for closures, not methods
resultVar = ra.getResult();
ipc++;
break;
}
case RECV_POST_REQD_ARG: {
ReceivePostReqdArgInstr ra = (ReceivePostReqdArgInstr)instr;
result = ra.receivePostReqdArg(args);
if (result == null) result = context.nil; // For blocks
resultVar = ra.getResult();
ipc++;
break;
}
case RECV_OPT_ARG: {
ReceiveOptArgBase ra = (ReceiveOptArgBase)instr;
result = ra.receiveOptArg(args);
resultVar = ra.getResult();
ipc++;
break;
}
case RECV_REST_ARG: {
ReceiveRestArgBase ra = (ReceiveRestArgBase)instr;
result = ra.receiveRestArg(runtime, args);
resultVar = ra.getResult();
ipc++;
break;
}
case RECV_CLOSURE: {
result = block == Block.NULL_BLOCK ? context.nil : runtime.newProc(Block.Type.PROC, block);