generators_from_v8_005.phpt 542 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. Test V8::executeString() : Generators V8 -> PHP (instantiate in PHP + iterate in JS)
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $js = <<<EOJS
  8. function* TheGen() {
  9. for(var i = 0; i < 4; i ++) {
  10. yield i;
  11. }
  12. }
  13. TheGen;
  14. EOJS;
  15. $v8 = new V8Js();
  16. $TheGen = $v8->executeString($js);
  17. $gen = $TheGen();
  18. $js = <<<EOJS
  19. (function(gen) {
  20. for(var i of gen) {
  21. var_dump(i);
  22. }
  23. })
  24. EOJS;
  25. $fn = $v8->executeString($js);
  26. $fn($gen);
  27. ?>
  28. ===EOF===
  29. --EXPECTF--
  30. int(0)
  31. int(1)
  32. int(2)
  33. int(3)
  34. ===EOF===