Fixnum s1 = new Fixnum((long)1);
Fixnum s2 = new Fixnum((long)2);
// Create a variable to hold the flip state
IRScope nearestNonClosure = s.getNearestFlipVariableScope();
Variable flipState = nearestNonClosure.getNewFlipStateVariable();
nearestNonClosure.initFlipStateVariable(flipState, s1);
if (s instanceof IRClosure) {
// Clone the flip variable to be usable at the proper-depth.
int n = 0;
IRScope x = s;
while (!x.isFlipScope()) {
if (!x.isForLoopBody()) n++;
x = x.getLexicalParent();
}
if (n > 0) flipState = ((LocalVariable)flipState).cloneForDepth(n);
}
// Variables and labels needed for the code
Variable returnVal = s.getNewTemporaryVariable();
Label s2Label = s.getNewLabel();
Label doneLabel = s.getNewLabel();
// Init
s.addInstr(new CopyInstr(returnVal, manager.getFalse()));