generators_from_v8_007.phpt 608 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. Test V8::executeString() : Generators V8 -> PHP (throw JS)
  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. yield 23;
  15. throw new Error('blar');
  16. }
  17. TheGen();
  18. EOJS;
  19. $v8 = new V8Js();
  20. $gen = $v8->executeString($js);
  21. foreach($gen as $a) {
  22. var_dump($a);
  23. }
  24. ?>
  25. ===EOF===
  26. --EXPECTF--
  27. int(23)
  28. Fatal error: Uncaught V8JsScriptException: %s Error: blar in %s
  29. Stack trace:
  30. #0 %s: V8Generator->next()
  31. #1 {main}
  32. thrown in %s