generators_to_v8_basic.phpt 724 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. Test V8::executeString() : Generators PHP -> V8
  3. --SKIPIF--
  4. <?php
  5. require_once(dirname(__FILE__) . '/skipif.inc');
  6. // Actually this check is a bit bad as it tests import, but currently
  7. // there is no flag we can check for export
  8. if (!class_exists('V8Generator')) {
  9. die("skip Installed V8 version doesn't support generators");
  10. }
  11. ?>
  12. --FILE--
  13. <?php
  14. function TheGenerator()
  15. {
  16. for($i = 0; $i < 4; $i ++) {
  17. yield $i;
  18. }
  19. }
  20. foreach(TheGenerator() as $i) {
  21. var_dump($i);
  22. }
  23. $js = <<<EOJS
  24. for(var i of PHP.gen) {
  25. var_dump(i);
  26. }
  27. EOJS;
  28. $v8 = new V8Js();
  29. $v8->gen = TheGenerator();
  30. $gen = $v8->executeString($js);
  31. ?>
  32. ===EOF===
  33. --EXPECTF--
  34. int(0)
  35. int(1)
  36. int(2)
  37. int(3)
  38. int(0)
  39. int(1)
  40. int(2)
  41. int(3)
  42. ===EOF===