py: Fix emitcpy so continue is compatible with CPython.

This commit is contained in:
Damien George 2014-02-01 21:56:25 +00:00
parent cbddb279bb
commit e24b563796
1 changed files with 10 additions and 7 deletions

View File

@ -456,18 +456,21 @@ static void emit_cpy_setup_loop(emit_t *emit, int label) {
}
}
static void emit_cpy_break_loop(emit_t *emit, int label) {
static void emit_cpy_break_loop(emit_t *emit, int label, int except_depth) {
emit_pre(emit, 0, 1);
if (emit->pass == PASS_3) {
printf("BREAK_LOOP\n"); // CPython doesn't have label
//printf("BREAK_LOOP %d\n", emit->label_offsets[label]);
printf("BREAK_LOOP\n");
}
}
static void emit_cpy_continue_loop(emit_t *emit, int label) {
emit_pre(emit, 0, 3);
if (emit->pass == PASS_3) {
printf("CONTINUE_LOOP %d\n", emit->label_offsets[label]);
static void emit_cpy_continue_loop(emit_t *emit, int label, int except_depth) {
if (except_depth == 0) {
emit_cpy_jump(emit, label);
} else {
emit_pre(emit, 0, 3);
if (emit->pass == PASS_3) {
printf("CONTINUE_LOOP %d\n", emit->label_offsets[label]);
}
}
}