bug69989_3.phpt 594 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. Generator cycle collection edge cases
  3. --FILE--
  4. <?php
  5. // Extra args
  6. function gen1() {
  7. yield;
  8. }
  9. $obj = new stdClass;
  10. $obj->gen = gen1($obj);
  11. // Symtable
  12. function gen2() {
  13. $varName = 'a';
  14. $$varName = yield;
  15. yield;
  16. }
  17. $gen = gen2();
  18. $gen->send($gen);
  19. // Symtable indirect
  20. function gen3() {
  21. $varName = 'a';
  22. $$varName = 42;
  23. $var = yield;
  24. yield;
  25. }
  26. $gen = gen3();
  27. $gen->send($gen);
  28. // Yield from root
  29. function gen4() {
  30. yield from yield;
  31. }
  32. $gen = gen4();
  33. $gen2 = gen4($gen);
  34. $gen2->send([1, 2, 3]);
  35. $gen->send($gen2);
  36. ?>
  37. ===DONE===
  38. --EXPECT--
  39. ===DONE===