diff options
author | Damien George <damien.p.george@gmail.com> | 2014-04-08 16:49:28 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-04-08 16:49:28 +0100 |
commit | e753d916c01a8297011d7bb9a16e1947c33fe08d (patch) | |
tree | dbcd1694094db05d58df17e3bb80ee4963abea5a /py/vm.c | |
parent | b7ffdcc1c7a1c76577ced1f727fe0802884de8a0 (diff) | |
download | micropython-e753d916c01a8297011d7bb9a16e1947c33fe08d.tar.gz micropython-e753d916c01a8297011d7bb9a16e1947c33fe08d.zip |
py: Raise exception for unimplemented byte codes.
Diffstat (limited to 'py/vm.c')
-rw-r--r-- | py/vm.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -639,8 +639,10 @@ unwind_jump: obj1 = TOP(); SET_TOP(mp_obj_new_slice(obj1, obj2, NULL)); } else { - printf("3-argument slice is not supported\n"); - assert(0); + obj1 = mp_obj_new_exception_msg(&mp_type_NotImplementedError, "3-argument slice is not supported"); + nlr_pop(); + fastn[0] = obj1; + return MP_VM_RETURN_EXCEPTION; } break; #endif @@ -833,9 +835,10 @@ yield: default: printf("code %p, byte code 0x%02x not implemented\n", ip, op); - assert(0); + obj1 = mp_obj_new_exception_msg(&mp_type_NotImplementedError, "byte code not implemented"); nlr_pop(); - return MP_VM_RETURN_NORMAL; + fastn[0] = obj1; + return MP_VM_RETURN_EXCEPTION; } } |