--TEST-- Test V8::executeString() : Check ArrayAccess interface wrapping --SKIPIF-- --INI-- v8js.use_array_access = 1 --FILE-- = 0 && $offset <= 20; } public function offsetGet(mixed $offset): mixed { return 19 - $offset; } public function offsetSet(mixed $offset, mixed $value): void { throw new Exception('Not implemented'); } public function offsetUnset(mixed $offset): void { throw new Exception('Not implemented'); } public function count(): int { return 20; } } $myarr = new MyArray(); var_dump(count($myarr)); var_dump($myarr[5]); $js = <<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===