generators_to_v8_003.phpt 661 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. Test V8::executeString() : Generators PHP -> V8 (instantiate in JS, iterate in PHP)
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $v8 = new V8Js();
  8. $v8->Gen = function() {
  9. for($i = 0; $i < 6; $i ++) {
  10. yield $i;
  11. }
  12. };
  13. $JS = <<<EOJS
  14. var g = PHP.Gen();
  15. var_dump(g.next());
  16. var_dump(g.next());
  17. (g);
  18. EOJS;
  19. $gen = $v8->executeString($JS);
  20. foreach($gen as $i) {
  21. var_dump($i);
  22. }
  23. ?>
  24. ===EOF===
  25. --EXPECTF--
  26. object(Object)#%d (2) {
  27. ["value"] =>
  28. int(0)
  29. ["done"] =>
  30. bool(false)
  31. }
  32. object(Object)#%d (2) {
  33. ["value"] =>
  34. int(1)
  35. ["done"] =>
  36. bool(false)
  37. }
  38. int(2)
  39. int(3)
  40. int(4)
  41. int(5)
  42. ===EOF===