Author: Philip Jenvey <pjen...@underboss.org>
Branch: py3k
Changeset: r72822:7ca938cad6ed
Date: 2014-08-15 18:01 -0700
http://bitbucket.org/pypy/pypy/changeset/7ca938cad6ed/

Log:    fix preserving the exception state between generator yields for the
        3rd time

diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -63,6 +63,8 @@
         try:
             while True:
                 next_instr = self.handle_bytecode(co_code, next_instr, ec)
+        except Yield:
+            return self.popvalue()
         except ExitFrame:
             self.last_exception = None
             return self.popvalue()
diff --git a/pypy/interpreter/test/test_generator.py 
b/pypy/interpreter/test/test_generator.py
--- a/pypy/interpreter/test/test_generator.py
+++ b/pypy/interpreter/test/test_generator.py
@@ -307,12 +307,12 @@
                 foobar
             except NameError:
                 yield 5
-                raise    # should raise "no active exception to re-raise"
+                raise
         gen = f()
         next(gen)  # --> 5
         try:
             next(gen)
-        except TypeError:
+        except NameError:
             pass
 
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to