From 44307d5ef8f1c78d0a393e8ab842d18799d56517 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 29 Mar 2014 04:10:11 +0200 Subject: vm: Implement "with" statement (SETUP_WITH and WITH_CLEANUP bytecodes). --- py/compile.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'py/compile.c') diff --git a/py/compile.c b/py/compile.c index b3a83715e..9e6c4e5fe 100644 --- a/py/compile.c +++ b/py/compile.c @@ -1798,6 +1798,7 @@ void compile_with_stmt_helper(compiler_t *comp, int n, mp_parse_node_t *nodes, m EMIT_ARG(setup_with, l_end); EMIT(pop_top); } + compile_increase_except_level(comp); // compile additional pre-bits and the body compile_with_stmt_helper(comp, n - 1, nodes + 1, body); // finish this with block @@ -1805,6 +1806,7 @@ void compile_with_stmt_helper(compiler_t *comp, int n, mp_parse_node_t *nodes, m EMIT_ARG(load_const_tok, MP_TOKEN_KW_NONE); EMIT_ARG(label_assign, l_end); EMIT(with_cleanup); + compile_decrease_except_level(comp); EMIT(end_finally); } } -- cgit v1.2.3