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
#49 umbrella remains open for JIT paths where SuperglobalInit still folds literal keys at compile time. #70 / #86 closed literal-key isset; apps using dynamic keys still fail JIT:
$key = 'name';
if (isset($_GET[$key])) { echo$_GET[$key]; }
IssetHelper / lib/JIT/Builtin/IssetHelper.php must call __hashtable__offsetIsSet on sg_GET / sg_POST when the key is non-constant.
Problem
#49 umbrella remains open for JIT paths where
SuperglobalInitstill folds literal keys at compile time. #70 / #86 closed literal-key isset; apps using dynamic keys still fail JIT:IssetHelper/lib/JIT/Builtin/IssetHelper.phpmust call__hashtable__offsetIsSetonsg_GET/sg_POSTwhen the key is non-constant.Goal
isset($_GET[$var])andempty($_GET[$var])compile under JIT when superglobals are runtime-filled (JIT: Per-run superglobal refresh for bin/jit.php (-q/-p between invocations) #642 per-run refresh)test/compliance/cases/web/web_isset_dynamic_get_jit.phptImplementation hints
lib/JIT/Builtin/IssetHelper.phplib/JIT.phpempty loweringtest/aot/JitSuperglobalRefreshTest.phpsuperglobals_refresh.cAcceptance criteria
Verification (local / Docker only)
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ ./script/ci-local.sh --filter JitSuperglobalDependencies
Links