Problem
docs/capabilities.md lists array_map as VM only (no JIT / no AOT). Web apps and templates often use functional helpers:
$ids = array_map('intval', explode(',', $_GET['ids'] ?? ''));
Not a 003-MiniWebApp v1 blocker (Router uses loops), but gaps the capability matrix vs Zend for API-style examples.
Goal
array_map with string function name or callable subset (document limits) in JIT and AOT, matching VM for compliance fixtures.
Implementation hints
| Layer |
Files |
| VM |
ext/standard/ — already yes |
| JIT |
lib/JIT/Builtin/Standard/ — callback dispatch or inline for string builtins |
| AOT |
lib/AOT/Builtin/ shared with VM |
| Matrix |
script/capability-matrix.php |
Acceptance criteria
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \
vendor/bin/phpunit test/compliance/cases/stdlib/array_map_string.phpt
(Matrix row shows JIT/AOT yes.)
Verification (local / Docker only)
./script/ci-local.sh --filter array_map
Dependencies
Priority
P3 — stdlib polish
Links
Problem
docs/capabilities.mdlistsarray_mapas VM only (noJIT /noAOT). Web apps and templates often use functional helpers:Not a 003-MiniWebApp v1 blocker (Router uses loops), but gaps the capability matrix vs Zend for API-style examples.
Goal
array_mapwith string function name or callable subset (document limits) in JIT and AOT, matching VM for compliance fixtures.Implementation hints
ext/standard/— already yeslib/JIT/Builtin/Standard/— callback dispatch or inline for string builtinslib/AOT/Builtin/shared with VMscript/capability-matrix.phpAcceptance criteria
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ vendor/bin/phpunit test/compliance/cases/stdlib/array_map_string.phpt(Matrix row shows JIT/AOT
yes.)Verification (local / Docker only)
Dependencies
array_mapto follow-up)Priority
P3 — stdlib polish
Links