summaryrefslogtreecommitdiff
path: root/py/objgetitemiter.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/objgetitemiter.c')
-rw-r--r--py/objgetitemiter.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/py/objgetitemiter.c b/py/objgetitemiter.c
index ab312c73c..ae98db8c7 100644
--- a/py/objgetitemiter.c
+++ b/py/objgetitemiter.c
@@ -47,8 +47,9 @@ STATIC mp_obj_t it_iternext(mp_obj_t self_in) {
return value;
} else {
// an exception was raised
- if (mp_obj_get_type(nlr.ret_val) == &mp_type_StopIteration) {
- // return MP_OBJ_STOP_ITERATION instead of raising StopIteration
+ mp_obj_type_t *t = mp_obj_get_type(nlr.ret_val);
+ if (t == &mp_type_StopIteration || t == &mp_type_IndexError) {
+ // return MP_OBJ_STOP_ITERATION instead of raising
return MP_OBJ_STOP_ITERATION;
} else {
// re-raise exception