py: Properly implement deletion of locals and derefs, and detect errors.
Needed to reinstate 2 delete opcodes, to specifically check that a local
is not deleted twice.
diff --git a/py/showbc.c b/py/showbc.c
index c566204..c1e420f 100644
--- a/py/showbc.c
+++ b/py/showbc.c
@@ -123,6 +123,11 @@
printf("LOAD_FAST_N " UINT_FMT, unum);
break;
+ case MP_BC_LOAD_FAST_CHECKED:
+ DECODE_UINT;
+ printf("LOAD_FAST_CHECKED " UINT_FMT, unum);
+ break;
+
case MP_BC_LOAD_DEREF:
DECODE_UINT;
printf("LOAD_DEREF " UINT_FMT, unum);
@@ -193,6 +198,16 @@
printf("STORE_SUBSCR");
break;
+ case MP_BC_DELETE_FAST:
+ DECODE_UINT;
+ printf("DELETE_FAST " UINT_FMT, unum);
+ break;
+
+ case MP_BC_DELETE_DEREF:
+ DECODE_UINT;
+ printf("DELETE_DEREF " UINT_FMT, unum);
+ break;
+
case MP_BC_DELETE_NAME:
DECODE_QSTR;
printf("DELETE_NAME %s", qstr_str(qstr));