1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- --TEST--
- Test V8::executeString() : Test PHP object construction controlled by JavaScript (with ctor)
- --SKIPIF--
- <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
- --FILE--
- <?php
- $v8 = new V8Js();
- class Greeter {
- protected $_name = null;
- function __construct($name) {
- echo "ctor called (php)\n";
- $this->_name = $name;
- }
- function sayHello() {
- echo "Hello ".$this->_name."\n";
- }
- }
- $v8->greeter = new Greeter("John");
- $v8->executeString('
- function JsGreeter(name) {
- print("ctor called (js)\n");
- this.name = name;
- };
- JsGreeter.prototype.sayHello = function() {
- print("Hello " + this.name + "\n");
- };
- jsGreeter = new JsGreeter("Paul");
- jsGreeter.sayHello();
- jsGreeterNg = new jsGreeter.constructor("George");
- jsGreeterNg.sayHello();
- // ----- now the same using v8Js -----
- PHP.greeter.sayHello();
- var ngGreeter = new PHP.greeter.constructor("Ringo");
- ngGreeter.sayHello();
- ');
- ?>
- ===EOF===
- --EXPECT--
- ctor called (php)
- ctor called (js)
- Hello Paul
- ctor called (js)
- Hello George
- Hello John
- ctor called (php)
- Hello Ringo
- ===EOF===
|