You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#13923 was closed 2026-06-30 but closure-scoped weak refs are still broken on VM: WeakMap offset read and WeakReference::get() return NULL inside a user closure while top-level access works.
Fix: `hasStrongScopeBinding()` now scans the active `executingFrame` (closure / parent-linked) in addition to `runStack` suspended callers — closure locals were invisible to weak-ref alive checks.
Verification:
```bash
./script/docker-exec.sh -- php bin/vm.php test/repro/maintainer_gap_weakmap_closure_offsetget.php # ok
./script/docker-exec.sh -- php bin/vm.php test/repro/maintainer_gap_weakreference_closure_get.php # ok
./script/docker-exec.sh -- ./vendor/bin/phpunit test/unit/WeakReferenceWeakMapTest.php # OK (21 tests)
```
Activity
PurHur commentedon Jun 30, 2026
claim: worker-lane-c — batch (issues #14132)
Fix WeakMap/WeakReference alive checks inside closures (#14132). (#14137
PurHur commentedon Jun 30, 2026
Merged via #14137.
Fix: `hasStrongScopeBinding()` now scans the active `executingFrame` (closure / parent-linked) in addition to `runStack` suspended callers — closure locals were invisible to weak-ref alive checks.
Verification:
```bash
./script/docker-exec.sh -- php bin/vm.php test/repro/maintainer_gap_weakmap_closure_offsetget.php # ok
./script/docker-exec.sh -- php bin/vm.php test/repro/maintainer_gap_weakreference_closure_get.php # ok
./script/docker-exec.sh -- ./vendor/bin/phpunit test/unit/WeakReferenceWeakMapTest.php # OK (21 tests)
```
PurHur commentedon Jun 30, 2026
claim: PHP Compiler STD Lib — batch (issues #14132)
PurHur commentedon Jun 30, 2026
Merged via #14138 — VM repros green; WeakReferenceWeakMapTest 19/19; AOT lint on weakmap closure repro exit 0.
Merge origin/master; keep visitNamedStrongRefRoots for #14132.
Fix WeakMap/WeakReference liveness inside closures (#14132). (#14138)
Fix return-type TypeError getTrace() for VM bridge throws (#14369). (#…