Problem
IssetHelper optimizes isset($_GET['key']) via SuperglobalInit::compileTimeOffsetIsSet when the key is a string literal. Non-literal keys and runtime-populated superglobals need LLVM hashtable offsetIsSet calls.
Errors today:
isset() on superglobals only supports a string literal key in this compiler build
VM tests (web_isset_get.phpt) pass; JIT compliance may differ.
Goal
isset($_GET[$param]) and empty($_GET['missing']) work when superglobals are runtime-filled.
Tasks
Depends on
Files
lib/JIT/IssetHelper.php
lib/JIT/SuperglobalInit.php
Problem
IssetHelperoptimizesisset($_GET['key'])viaSuperglobalInit::compileTimeOffsetIsSetwhen the key is a string literal. Non-literal keys and runtime-populated superglobals need LLVM hashtableoffsetIsSetcalls.Errors today:
isset() on superglobals only supports a string literal key in this compiler buildVM tests (
web_isset_get.phpt) pass; JIT compliance may differ.Goal
isset($_GET[$param])andempty($_GET['missing'])work when superglobals are runtime-filled.Tasks
__hashtable__offsetIsSetforsg_GET/sg_POSTglobalsempty()lowering consistent with issettest/compliancefor JIT modeDepends on
Files
lib/JIT/IssetHelper.phplib/JIT/SuperglobalInit.php