}
break compileLoop;
case HASHNODE:
LinkAnchor list = DECL_ANCHOR();
long size = 0;
Node lnode = ((HashNode)node).getListNode();
if(lnode.childNodes().size()>0) {
compile_array(list, lnode, false);
size = ((Insn)POP_ELEMENT(list)).i.l_op0;
ADD_SEQ(ret, list);
}
ADD_INSN1(ret, nd_line(node), YARVInstructions.NEWHASH, size);
if(poped) {
ADD_INSN(ret, nd_line(node), YARVInstructions.POP);
}
break compileLoop;
case FIXNUMNODE:
FixnumNode iVisited = (FixnumNode) node;
if(!poped) {
ADD_INSN1(ret, nd_line(node), YARVInstructions.PUTOBJECT, iVisited.getFixnum(runtime));
}
break compileLoop;
case WHILENODE:
case UNTILNODE:{
Label next_label = NEW_LABEL(nd_line(node)); /* next */
Label redo_label = NEW_LABEL(nd_line(node)); /* redo */
Label break_label = NEW_LABEL(nd_line(node)); /* break */
Label end_label = NEW_LABEL(nd_line(node));
ADD_LABEL(ret, redo_label);
Node body = null;
if(node instanceof WhileNode) {
body = ((WhileNode)node).getBodyNode();
} else if(node instanceof UntilNode) {
body = ((UntilNode)node).getBodyNode();
}