| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | --TEST--Test V8::executeString() : Testing lifespan of V8Js context objects--SKIPIF--<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>--FILE--<?phpclass Foo{	function hello() {		echo "Hello!\n";	}}class Testing{	function onectx()	{		$v8js = new V8Js();		$v8js->foo = new Foo;		return $v8js->executeString("({ bar: 23, hello: function() { PHP.foo.__call('hello',[]); } })");		// $v8js will be dereferenced here, but the result escapes.	}}$t = new Testing();$a = $t->onectx();/* $a is no longer valid, since the associated V8Js() object has been * destroyed.  Instead the property access will throw. */var_dump($a);try {  var_dump($a->bar);}catch(Exception $e) {  var_dump($e->getMessage());}$a->hello();?>===EOF===--EXPECTF--object(V8Object)#%d (0) {}string(55) "Can't access V8Object after V8Js instance is destroyed!"Fatal error: Uncaught V8JsException: Can't access V8Object after V8Js instance is destroyed! in %s%etests%ectx_lifetime.php:35Stack trace:#0 {main}  thrown in %s%etests%ectx_lifetime.php on line 35
 |