public void compileUntil(Node node, BodyCompiler context, boolean expr) {
final UntilNode untilNode = (UntilNode) node;
if (untilNode.getConditionNode().getNodeType().alwaysTrue() &&
untilNode.evaluateAtStart()) {
// condition is always true, just compile it and not body
compile(untilNode.getConditionNode(), context, false);
if (expr) context.loadNil();
} else {
BranchCallback condition = new BranchCallback() {