fatal_error_recursive.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. Test V8::executeString() : Fatal Error with recursive executeString calls
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $js = new V8Js();
  8. $js->baz = function() {
  9. $bar = null;
  10. $bar->bar();
  11. };
  12. $js->bar = function() {
  13. global $js;
  14. $js->executeString("PHP.baz();");
  15. };
  16. $js->foo = function() {
  17. global $js;
  18. $js->executeString("PHP.bar();");
  19. };
  20. $js->nofail = function() {
  21. echo "foo\n";
  22. };
  23. $js->executeString("PHP.nofail();");
  24. $js->executeString("PHP.nofail(); PHP.foo();");
  25. ?>
  26. ===EOF===
  27. --EXPECTF--
  28. foo
  29. foo
  30. Fatal error: Uncaught Error: Call to a member function bar() on null in %s%efatal_error_recursive.php:7
  31. Stack trace:
  32. #0 [internal function]: {closure}()
  33. #1 [internal function]: Closure->__invoke()
  34. #2 %s%efatal_error_recursive.php(12): V8Js->executeString('PHP.baz();')
  35. #3 [internal function]: {closure}()
  36. #4 [internal function]: Closure->__invoke()
  37. #5 %s%efatal_error_recursive.php(17): V8Js->executeString('PHP.bar();')
  38. #6 [internal function]: {closure}()
  39. #7 [internal function]: Closure->__invoke()
  40. #8 %s%efatal_error_recursive.php(25): V8Js->executeString('PHP.nofail(); P...')
  41. #9 {main}
  42. thrown in %s%efatal_error_recursive.php on line 7