| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | --TEST--Test V8::executeString() : Check ArrayAccess interface wrapping--SKIPIF--<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>--INI--v8js.use_array_access = 1--FILE--<?phpclass MyArray implements ArrayAccess, Countable {    public function offsetExists($offset) {        return $offset >= 0 && $offset <= 20;    }    public function offsetGet($offset) {        return 19 - $offset;    }    public function offsetSet($offset, $value) {        throw new Exception('Not implemented');    }    public function offsetUnset($offset) {        throw new Exception('Not implemented');    }    public function count() {        return 20;    }}$myarr = new MyArray();var_dump(count($myarr));var_dump($myarr[5]);$js = <<<EOJSvar_dump(PHP.myarr.constructor.name);var_dump(PHP.myarr.length);var_dump(PHP.myarr[5]);var_dump(PHP.myarr.join(', '));var_dump(PHP.myarr.slice(5, 10).join(', '));EOJS;$v8 = new V8Js();$v8->myarr = $myarr;$v8->executeString($js);?>===EOF===--EXPECT--int(20)int(14)string(5) "Array"int(20)int(14)string(68) "19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0"string(18) "14, 13, 12, 11, 10"===EOF===
 |