generators_from_v8_006.phpt 621 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. Test V8::executeString() : Generators V8 -> PHP (yield from)
  3. --SKIPIF--
  4. <?php
  5. require_once(dirname(__FILE__) . '/skipif.inc');
  6. if (!class_exists('V8Generator')) {
  7. die("skip Installed V8 version doesn't support generators");
  8. }
  9. ?>
  10. --FILE--
  11. <?php
  12. function PhpGen() {
  13. yield 23;
  14. $js = <<<EOJS
  15. function* TheGen() {
  16. for(var i = 0; i < 4; i ++) {
  17. yield i;
  18. }
  19. }
  20. TheGen();
  21. EOJS;
  22. $v8 = new V8Js();
  23. $jsGen = $v8->executeString($js);
  24. yield from $jsGen;
  25. }
  26. $gen = PhpGen();
  27. foreach($gen as $a) {
  28. var_dump($a);
  29. }
  30. ?>
  31. ===EOF===
  32. --EXPECTF--
  33. int(23)
  34. int(0)
  35. int(1)
  36. int(2)
  37. int(3)
  38. ===EOF===