--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===