@Override public void YieldInstr(YieldInstr yieldinstr) { jvmMethod().loadContext(); visit(yieldinstr.getBlockArg()); if (yieldinstr.getYieldArg() == UndefinedValue.UNDEFINED) { jvmMethod().yieldSpecific(); } else { Operand yieldOp = yieldinstr.getYieldArg(); if (yieldinstr.isUnwrapArray() && yieldOp instanceof Array && ((Array) yieldOp).size() > 1) { Array yieldValues = (Array) yieldOp; for (Operand yieldValue : yieldValues) { visit(yieldValue); } jvmMethod().yieldValues(yieldValues.size()); } else { visit(yieldinstr.getYieldArg()); jvmMethod().yield(yieldinstr.isUnwrapArray()); } } jvmStoreLocal(yieldinstr.getResult()); }
@Override public void YieldInstr(YieldInstr yieldinstr) { jvmMethod().loadContext(); visit(yieldinstr.getBlockArg()); if (yieldinstr.getYieldArg() == UndefinedValue.UNDEFINED) { jvmMethod().yieldSpecific(); } else { Operand yieldOp = yieldinstr.getYieldArg(); if (yieldinstr.isUnwrapArray() && yieldOp instanceof Array && ((Array) yieldOp).size() > 1) { Array yieldValues = (Array) yieldOp; for (Operand yieldValue : yieldValues) { visit(yieldValue); } jvmMethod().yieldValues(yieldValues.size()); } else { visit(yieldinstr.getYieldArg()); jvmMethod().yield(yieldinstr.isUnwrapArray()); } } jvmStoreLocal(yieldinstr.getResult()); }