generators_to_v8_001.phpt 637 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. Test V8::executeString() : Generators PHP -> V8 (instantite in JS)
  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. $js = <<<EOJS
  15. for(var i of PHP.Gen()) {
  16. var_dump(i);
  17. }
  18. EOJS;
  19. $v8 = new V8Js();
  20. $v8->Gen = function() {
  21. for($i = 0; $i < 4; $i ++) {
  22. yield $i;
  23. }
  24. };
  25. $v8->executeString($js);
  26. ?>
  27. ===EOF===
  28. --EXPECTF--
  29. int(0)
  30. int(1)
  31. int(2)
  32. int(3)
  33. ===EOF===