protected Operand buildLazyWithOrder(CallNode node, Label lazyLabel, Label endLabel, boolean preserveOrder) { Operand value = buildCall(null, node, lazyLabel, endLabel); // We need to preserve order in cases (like in presence of assignments) except that immutable // literals can never change value so we can still emit these out of order. return preserveOrder && !(value instanceof ImmutableLiteral) ? copyAndReturnValue(value) : value; }
protected Operand buildLazyWithOrder(CallNode node, Label lazyLabel, Label endLabel, boolean preserveOrder) { Operand value = buildCall(null, node, lazyLabel, endLabel); // We need to preserve order in cases (like in presence of assignments) except that immutable // literals can never change value so we can still emit these out of order. return preserveOrder && !(value instanceof ImmutableLiteral) ? copyAndReturnValue(value) : value; }
case BLOCKNODE: return buildBlock((BlockNode) node); case BREAKNODE: return buildBreak((BreakNode) node); case CALLNODE: return buildCall(result, (CallNode) node, null, null); case CASENODE: return buildCase((CaseNode) node); case CLASSNODE: return buildClass((ClassNode) node);
case BLOCKNODE: return buildBlock((BlockNode) node); case BREAKNODE: return buildBreak((BreakNode) node); case CALLNODE: return buildCall(result, (CallNode) node, null, null); case CASENODE: return buildCase((CaseNode) node); case CLASSNODE: return buildClass((ClassNode) node);
case BLOCKNODE: return buildBlock((BlockNode) node, s); case BREAKNODE: return buildBreak((BreakNode) node, s); case CALLNODE: return buildCall((CallNode) node, s); case CASENODE: return buildCase((CaseNode) node, s); case CLASSNODE: return buildClass((ClassNode) node, s);
case BLOCKNODE: return buildBlock((BlockNode) node, s); case BREAKNODE: return buildBreak((BreakNode) node, s); case CALLNODE: return buildCall((CallNode) node, s); case CASENODE: return buildCase((CaseNode) node, s); case CLASSNODE: return buildClass((ClassNode) node, s);