diff --git a/tests/array_access_001.phpt b/tests/array_access_001.phpt new file mode 100644 index 0000000..dd92bbd --- /dev/null +++ b/tests/array_access_001.phpt @@ -0,0 +1,52 @@ +--TEST-- +Test V8::executeString() : Check ArrayAccess live binding +--SKIPIF-- + +--INI-- +v8js.use_array_access = 1 +--FILE-- +data[$offset]); + } + + public function offsetGet($offset) { + return $this->data[$offset]; + } + + public function offsetSet($offset, $value) { + $this->data[$offset] = $value; + } + + public function offsetUnset($offset) { + throw new Exception('Not implemented'); + } + + public function count() { + return count($this->data); + } + + public function push($value) { + $this->data[] = $value; + } +} + +$v8 = new V8Js(); +$v8->myarr = new MyArray(); + +$v8->executeString('var_dump(PHP.myarr.join(","));'); + +/* array is "live bound", i.e. new elements just pop up on js side. */ +$v8->myarr->push('new'); +$v8->executeString('var_dump(PHP.myarr.join(","));'); + +?> +===EOF=== +--EXPECT-- +string(13) "one,two,three" +string(17) "one,two,three,new" +===EOF===