/**
* Create a new generator spy.
*
* @param Call $call The call from which the generator originated.
* @param Generator $generator The generator.
*
* @return Generator The newly created generator spy.
*/
public function create(Call $call, Generator $generator)
{
if ($this->isHhvm) {
// @codeCoverageIgnoreStart
if ($this->isGeneratorReturnSupported) {
$spy = GeneratorSpyFactoryDetailHhvmWithReturn::createGeneratorSpy($call, $generator, $this->callEventFactory);
} else {
$spy = GeneratorSpyFactoryDetailHhvm::createGeneratorSpy($call, $generator, $this->callEventFactory, $this->isGeneratorImplicitNextSupported);
}
// @codeCoverageIgnoreEnd
} elseif ($this->isGeneratorReturnSupported) {
$spy = GeneratorSpyFactoryDetailPhpWithReturn::createGeneratorSpy($call, $generator, $this->callEventFactory);
// @codeCoverageIgnoreStart
} else {
$spy = GeneratorSpyFactoryDetailPhp::createGeneratorSpy($call, $generator, $this->callEventFactory);
}
// @codeCoverageIgnoreEnd
$spy->_phonySubject = $generator;
return $spy;
}