diff options
| author | Damien George <damien.p.george@gmail.com> | 2014-04-08 21:11:49 +0100 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2014-04-08 21:11:49 +0100 |
| commit | 1d24ea5207ba4b62b20dbba22ab2800496418463 (patch) | |
| tree | 0ac953019f01f030778f2bc6381b69884e7124be /py/runtime.c | |
| parent | 134c10e776a5d75cfdd6bf98697cb50d7da7adf6 (diff) | |
py: Finish implementation of all del opcodes.
At this point, all opcodes are now implemented!
Some del opcodes have been combined with store opcodes, with the value
to store being MP_OBJ_NULL.
Diffstat (limited to 'py/runtime.c')
| -rw-r--r-- | py/runtime.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/py/runtime.c b/py/runtime.c index 3d1ae72c2..3400d8dc8 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -132,8 +132,8 @@ void mp_store_name(qstr qstr, mp_obj_t obj) { void mp_delete_name(qstr qstr) { DEBUG_OP_printf("delete name %s\n", qstr_str(qstr)); - // TODO raise NameError if qstr not found - mp_map_lookup(&dict_locals->map, MP_OBJ_NEW_QSTR(qstr), MP_MAP_LOOKUP_REMOVE_IF_FOUND); + // TODO convert KeyError to NameError if qstr not found + mp_obj_dict_delete(dict_locals, MP_OBJ_NEW_QSTR(qstr)); } void mp_store_global(qstr qstr, mp_obj_t obj) { @@ -141,6 +141,12 @@ void mp_store_global(qstr qstr, mp_obj_t obj) { mp_obj_dict_store(dict_globals, MP_OBJ_NEW_QSTR(qstr), obj); } +void mp_delete_global(qstr qstr) { + DEBUG_OP_printf("delete global %s\n", qstr_str(qstr)); + // TODO convert KeyError to NameError if qstr not found + mp_obj_dict_delete(dict_globals, MP_OBJ_NEW_QSTR(qstr)); +} + mp_obj_t mp_unary_op(int op, mp_obj_t arg) { DEBUG_OP_printf("unary %d %p\n", op, arg); |
