@@ -122,6 +122,8 @@ public PyObject call(ThreadState state, PyObject globals, PyObject[] defaults,
122122 PyFrame frame = new PyFrame (this , globals );
123123 if (co_flags .isFlagSet (CodeFlag .CO_GENERATOR )) {
124124 return new PyGenerator (frame , closure );
125+ } else if (co_flags .isFlagSet (CodeFlag .CO_COROUTINE )) {
126+ return new PyCoroutine (frame , closure );
125127 }
126128 return call (state , frame , closure );
127129 }
@@ -137,6 +139,8 @@ public PyObject call(ThreadState state, PyObject arg1, PyObject globals, PyObjec
137139 frame .f_fastlocals [0 ] = arg1 ;
138140 if (co_flags .isFlagSet (CodeFlag .CO_GENERATOR )) {
139141 return new PyGenerator (frame , closure );
142+ } else if (co_flags .isFlagSet (CodeFlag .CO_COROUTINE )) {
143+ return new PyCoroutine (frame , closure );
140144 }
141145 return call (state , frame , closure );
142146 }
@@ -153,6 +157,8 @@ public PyObject call(ThreadState state, PyObject arg1, PyObject arg2, PyObject g
153157 frame .f_fastlocals [1 ] = arg2 ;
154158 if (co_flags .isFlagSet (CodeFlag .CO_GENERATOR )) {
155159 return new PyGenerator (frame , closure );
160+ } else if (co_flags .isFlagSet (CodeFlag .CO_COROUTINE )) {
161+ return new PyCoroutine (frame , closure );
156162 }
157163 return call (state , frame , closure );
158164 }
@@ -171,6 +177,8 @@ public PyObject call(ThreadState state, PyObject arg1, PyObject arg2, PyObject a
171177 frame .f_fastlocals [2 ] = arg3 ;
172178 if (co_flags .isFlagSet (CodeFlag .CO_GENERATOR )) {
173179 return new PyGenerator (frame , closure );
180+ } else if (co_flags .isFlagSet (CodeFlag .CO_COROUTINE )) {
181+ return new PyCoroutine (frame , closure );
174182 }
175183 return call (state , frame , closure );
176184 }
@@ -189,6 +197,8 @@ public PyObject call(ThreadState state, PyObject arg1, PyObject arg2,
189197 frame .f_fastlocals [3 ] = arg4 ;
190198 if (co_flags .isFlagSet (CodeFlag .CO_GENERATOR )) {
191199 return new PyGenerator (frame , closure );
200+ } else if (co_flags .isFlagSet (CodeFlag .CO_COROUTINE )) {
201+ return new PyCoroutine (frame , closure );
192202 }
193203 return call (state , frame , closure );
194204 }
@@ -334,6 +344,8 @@ public PyObject call(ThreadState state, PyObject args[], String kws[], PyObject
334344
335345 if (co_flags .isFlagSet (CodeFlag .CO_GENERATOR )) {
336346 return new PyGenerator (frame , closure );
347+ } else if (co_flags .isFlagSet (CodeFlag .CO_COROUTINE )) {
348+ return new PyCoroutine (frame , closure );
337349 }
338350 return call (state , frame , closure );
339351 }
0 commit comments