1--TEST--
2Generator::throw() where the generator throws a different exception
3--FILE--
4<?php
5
6function gen() {
7    echo "before yield\n";
8    try {
9        yield;
10    } catch (RuntimeException $e) {
11        echo 'Caught: ', $e, "\n\n";
12
13        throw new LogicException('new throw');
14    }
15}
16
17$gen = gen();
18var_dump($gen->throw(new RuntimeException('throw')));
19
20?>
21--EXPECTF--
22before yield
23Caught: RuntimeException: throw in %s:%d
24Stack trace:
25#0 {main}
26
27
28Fatal error: Uncaught LogicException: new throw in %s:%d
29Stack trace:
30#0 [internal function]: gen()
31#1 %s(%d): Generator->throw(Object(RuntimeException))
32#2 {main}
33  thrown in %s on line %d
34