summaryrefslogtreecommitdiffstatshomepage
path: root/py/vm.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-08 16:49:28 +0100
committerDamien George <damien.p.george@gmail.com>2014-04-08 16:49:28 +0100
commite753d916c01a8297011d7bb9a16e1947c33fe08d (patch)
treedbcd1694094db05d58df17e3bb80ee4963abea5a /py/vm.c
parentb7ffdcc1c7a1c76577ced1f727fe0802884de8a0 (diff)
downloadmicropython-e753d916c01a8297011d7bb9a16e1947c33fe08d.tar.gz
micropython-e753d916c01a8297011d7bb9a16e1947c33fe08d.zip
py: Raise exception for unimplemented byte codes.
Diffstat (limited to 'py/vm.c')
-rw-r--r--py/vm.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/py/vm.c b/py/vm.c
index 567e8bb675..2e64cd9573 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -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;
}
}