/** * 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; }