mirror of
https://github.com/php/php-src.git
synced 2024-09-24 11:27:28 +00:00
Merge branch 'PHP-5.5'
This commit is contained in:
commit
6e1b84a646
@ -5,14 +5,18 @@ finally is run even if a generator is closed mid-execution
|
||||
|
||||
function gen() {
|
||||
try {
|
||||
echo "before yield\n";
|
||||
yield;
|
||||
echo "after yield\n";
|
||||
try {
|
||||
echo "before yield\n";
|
||||
yield;
|
||||
echo "after yield\n";
|
||||
} finally {
|
||||
echo "finally run\n";
|
||||
}
|
||||
echo "code after finally\n";
|
||||
} finally {
|
||||
echo "finally run\n";
|
||||
echo "second finally run\n";
|
||||
}
|
||||
|
||||
echo "code after finally\n";
|
||||
echo "code after second finally\n";
|
||||
}
|
||||
|
||||
$gen = gen();
|
||||
@ -23,3 +27,4 @@ unset($gen);
|
||||
--EXPECT--
|
||||
before yield
|
||||
finally run
|
||||
second finally run
|
||||
|
@ -60,6 +60,7 @@ void zend_generator_close(zend_generator *generator, zend_bool finished_executio
|
||||
* the resume. */
|
||||
if (finally_op_num) {
|
||||
execute_data->opline = &op_array->opcodes[finally_op_num];
|
||||
execute_data->fast_ret = NULL;
|
||||
generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
|
||||
zend_generator_resume(generator TSRMLS_CC);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user