| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- --TEST--
 
- Test V8::executeString() : Issue #116 V8Function injection into other V8Js
 
- --SKIPIF--
 
- <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
 
- --FILE--
 
- <?php
 
- $a = new V8Js();
 
- $b = new V8Js();
 
- $a->name = 'A';
 
- $b->name = 'B';
 
- $a->b = $b;
 
- $a->executeString('PHP.b.test = function() { print("Hallo from within " + PHP.name + ".\\n"); };');
 
- // in PHP we see the property
 
- var_dump($b->test);
 
- // we see (and can call) the function object in instance A
 
- print("in A:\n");
 
- $a->executeString('PHP.b.test();');
 
- // in B the function object is not available
 
- print("in B:\n");
 
- $b->executeString('print(typeof PHP.b + "\\n");');
 
- try {
 
- 	$b->executeString('PHP.test();');
 
- }
 
- catch(Exception $e) {
 
- 	var_dump($e->getMessage());
 
- }
 
- unset($a);
 
- unset($b);
 
- ?>
 
- ===EOF===
 
- --EXPECTF--
 
- Warning: V8Js::executeString(): V8Function object passed to wrong V8Js instance in %s on line %d
 
- object(V8Function)#%d (0) {
 
- }
 
- in A:
 
- Hallo from within A.
 
- in B:
 
- undefined
 
- string(%d) "V8Js::compileString():1: TypeError: %s is not a function"
 
- ===EOF===
 
 
  |