generators_from_v8_003.phpt 712 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. Test V8::executeString() : Generators V8 -> PHP (rewind)
  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. $js = <<<EOJS
  13. function* TheGen() {
  14. for(var i = 0; i < 4; i ++) {
  15. yield i;
  16. }
  17. }
  18. TheGen();
  19. EOJS;
  20. $v8 = new V8Js();
  21. $gen = $v8->executeString($js);
  22. foreach($gen as $a) {
  23. var_dump($a);
  24. }
  25. foreach($gen as $a) {
  26. var_dump($a);
  27. }
  28. ?>
  29. ===EOF===
  30. --EXPECTF--
  31. int(0)
  32. int(1)
  33. int(2)
  34. int(3)
  35. Fatal error: Uncaught V8JsException: V8Generator::rewind not supported by ES6 in %s
  36. Stack trace:
  37. #0 %s: V8Generator->rewind()
  38. #1 {main}
  39. thrown in %s on line 20