leak-php-object.phpt 679 B

1234567891011121314151617181920212223242526272829303132333435
  1. --TEST--
  2. Test V8::executeString() : Test for leaked PHP object if passed back multiple times
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $js =<<< EOF
  8. // Generate a large number of objects so we trigger definitely trigger the
  9. // garbage collector. 5000 * 1 kB should be enough.
  10. for(var i = 0; i < 5000; i ++) {
  11. PHP.foo.getStdClassObject();
  12. }
  13. EOF;
  14. class Foo {
  15. public function getStdClassObject() {
  16. return new stdClass();
  17. }
  18. public function __destruct() {
  19. echo "destroyed\n";
  20. }
  21. }
  22. $v8 = new V8Js();
  23. $v8->foo = new Foo();
  24. $v8->executeString($js);
  25. unset($v8);
  26. ?>
  27. ===EOF===
  28. --EXPECT--
  29. destroyed
  30. ===EOF===