mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
commit
00ef092335
2 changed files with 25 additions and 0 deletions
24
Zend/tests/generators/bug79600.phpt
Normal file
24
Zend/tests/generators/bug79600.phpt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
--TEST--
|
||||||
|
Bug #79600: Regression in 7.4.6 when yielding an array based generator
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function createArrayGenerator() {
|
||||||
|
yield from [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function createGeneratorFromArrayGenerator() {
|
||||||
|
yield from createArrayGenerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (createGeneratorFromArrayGenerator() as $value) {
|
||||||
|
echo $value, "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
1
|
||||||
|
2
|
|
@ -729,6 +729,7 @@ try_again:
|
||||||
|
|
||||||
if (UNEXPECTED(!Z_ISUNDEF(generator->values))) {
|
if (UNEXPECTED(!Z_ISUNDEF(generator->values))) {
|
||||||
if (EXPECTED(zend_generator_get_next_delegated_value(generator) == SUCCESS)) {
|
if (EXPECTED(zend_generator_get_next_delegated_value(generator) == SUCCESS)) {
|
||||||
|
orig_generator->flags &= ~ZEND_GENERATOR_DO_INIT;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* If there are no more deletegated values, resume the generator
|
/* If there are no more deletegated values, resume the generator
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue