summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-01-10 15:20:08 -0800
committerDamien George <damien.p.george@gmail.com>2014-01-10 15:20:08 -0800
commite9b4b7ac756273ca14507efc6d92c8b003f99c51 (patch)
tree67d23a573cd2deb19d3ce613ba94b9c52aa918ab
parent46c9e9713208b3d7bda1db400f3af595ae3d64e9 (diff)
parent5388a3c29a5f25aa195c5e4f04aae334a8c08bc4 (diff)
downloadmicropython-e9b4b7ac756273ca14507efc6d92c8b003f99c51.tar.gz
micropython-e9b4b7ac756273ca14507efc6d92c8b003f99c51.zip
Merge pull request #135 from pfalcon/simple-raise
Crude attempt to implement RAISE_VARARGS (with args=1 so far only).
-rw-r--r--py/vm.c7
-rw-r--r--tests/basics/tests/try1.py5
2 files changed, 12 insertions, 0 deletions
diff --git a/py/vm.c b/py/vm.c
index 5e3ec0baf8..e2bb3de642 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -474,6 +474,13 @@ bool mp_execute_byte_code_2(const byte **ip_in_out, mp_obj_t *fastn, mp_obj_t **
assert(exc_sp == &exc_stack[0] - 1);
return false;
+ case MP_BC_RAISE_VARARGS:
+ unum = *ip++;
+ assert(unum == 1);
+ obj1 = POP();
+ nlr_jump(obj1);
+ return false;
+
case MP_BC_YIELD_VALUE:
nlr_pop();
*ip_in_out = ip;
diff --git a/tests/basics/tests/try1.py b/tests/basics/tests/try1.py
index b3b85372d7..56d3075041 100644
--- a/tests/basics/tests/try1.py
+++ b/tests/basics/tests/try1.py
@@ -4,3 +4,8 @@ try:
x.a()
except:
print(x)
+
+try:
+ raise IndexError
+except IndexError:
+ print("caught")