Variable blockVar = null;
if (blockVarNode != null) {
String blockArgName = blockVarNode.getName();
blockVar = s.getNewLocalVariable(blockArgName, 0);
if (s instanceof IRMethod) ((IRMethod)s).addArgDesc("block", blockArgName);
s.addInstr(new ReceiveClosureInstr(blockVar));
}
// SSS FIXME: This instruction is only needed if there is an yield instr somewhere!
// In addition, store the block argument in an implicit block variable
Variable implicitBlockArg = s.getImplicitBlockArg();
if (blockVar == null) s.addInstr(new ReceiveClosureInstr(implicitBlockArg));
else s.addInstr(new CopyInstr(implicitBlockArg, blockVar));
}