void codeBranch(Environment env, Context ctx, Assembler asm, Label lbl, boolean whenTrue) {
if (whenTrue) {
left.codeBranch(env, ctx, asm, lbl, true);
right.codeBranch(env, ctx, asm, lbl, true);
} else {
Label lbl2 = new Label();
left.codeBranch(env, ctx, asm, lbl2, true);
right.codeBranch(env, ctx, asm, lbl, false);
asm.add(lbl2);
}
}