@@ -95,7 +95,7 @@ bool VM::py_ge(PyVar _0, PyVar _1){
#define DISPATCH() { frame->_ip++; goto __NEXT_STEP; }
#define DISPATCH_JUMP(__target) { frame->_ip = __target; goto __NEXT_STEP; }
-#define RETURN_OP_YIELD() { frame->_ip++; return PY_OP_YIELD; }
+#define RETURN_OP_YIELD() { return PY_OP_YIELD; }
PyVar VM::__run_top_frame(){
Frame* frame = &callstack.top();
@@ -106,11 +106,6 @@ def test(*seq):
return s1.join(seq)
assert test("r", "u", "n", "o", "o", "b") == "r-u-n-o-o-b"
-def f():
- for i in range(5):
- yield str(i)
-assert '|'.join(f()) == '0|1|2|3|4'
-
num = 6
assert str(num) == '6'
@@ -1,3 +1,11 @@
+def g():
+ yield 1
+ yield 2
+
+a = g()
+assert next(a) == 1
+assert next(a) == 2
def f(n):
for i in range(n):
yield i
@@ -38,6 +46,13 @@ def f():
a = [i for i in f()]
assert a == [1, 2, 3]
+def f():
+ for i in range(5):
+ yield str(i)
+assert '|'.join(f()) == '0|1|2|3|4'