diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-02 10:53:13 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-02 10:53:13 +0200 |
commit | c6fd37cee32965b905e57dfd1abbd066b1e87317 (patch) | |
tree | 37a6f57e74e60f5bfe696b108d48027d2e1ba4a1 | |
parent | 605ee9c8eb614729be717d3244cfa3da9705ba64 (diff) | |
parent | 2e9e706a8271bbb42ad696c3383912facdd7d45f (diff) | |
download | php-git-c6fd37cee32965b905e57dfd1abbd066b1e87317.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix throwing of yield from related exceptions into generator
-rw-r--r-- | Zend/tests/generators/yield_from_valid_exception.phpt | 3 | ||||
-rw-r--r-- | Zend/zend_generators.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/Zend/tests/generators/yield_from_valid_exception.phpt b/Zend/tests/generators/yield_from_valid_exception.phpt index 3af35f53af..d3e054bfaf 100644 --- a/Zend/tests/generators/yield_from_valid_exception.phpt +++ b/Zend/tests/generators/yield_from_valid_exception.phpt @@ -15,7 +15,8 @@ class FooBar implements Iterator { function gen() { try { - yield from new FooBar; + // the fact that the yield from result is used is relevant. + var_dump(yield from new FooBar); } catch (Exception $e) { echo $e->getMessage(), "\n"; } diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index 04c758bea7..805bff38ab 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -759,7 +759,7 @@ static int zend_generator_get_next_delegated_value(zend_generator *generator) /* return SUCCESS; exception: - zend_rethrow_exception(generator->execute_data); + zend_generator_throw_exception(generator, NULL); failure: zval_ptr_dtor(&generator->values); |