| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | --TEST--Test V8::executeString() : Issue #250 (early free of array)--SKIPIF--<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>--FILE--<?phpclass TestObject {    private $data = [];    private $meta = [];    public function setTitle($title) {        $this->a->b->title = $title;    }    public function getData() {        return $this->data;    }    public function getMeta() {        return $this->meta;    }    public function setData($data=[]) {        $this->data = $data;    }    public function setMeta($meta) {        return;    }}$v8 = new V8Js("server");$code = <<< EOT    var v1 = server.response.getData();    var v2 = server.response.getMeta();    server.response.setData({});    server.response.setTitle("ouch");    server.response.setMeta({});EOT;$response = new TestObject();$v8->response = $response;try {    $result = $v8->executeString($code);    var_dump($v8->response);} catch (V8JsException $e) {    var_dump($e);}?>===EOF===--EXPECTF--Warning: Creating default object from empty value in %s%eissue_250_001.php on line 9object(TestObject)#%d (3) {  ["data":"TestObject":private]=>  object(V8Object)#%d (0) {  }  ["meta":"TestObject":private]=>  array(0) {  }  ["a"]=>  object(stdClass)#%d (1) {    ["b"]=>    object(stdClass)#%d (1) {      ["title"]=>      string(4) "ouch"    }  }}===EOF===
 |