Resolve Dim variables and function arguments to direct indices during compilation, emitting OP_local instead of OP_ident. This eliminates runtime wcsicmp scans in lookup_identifier() for the most common case. This mirrors jscript's OP_local optimization (dlls/jscript/compile.c: bind_local / emit_identifier). It's still 10x slower compared to windows but I have another related MR coming for that and it's related to the loop Windows ``` Local vars: 156.3 ms Arguments: 156.3 ms Class props: 390.6 ms Iterations: 1,000,000 ``` | Phase | Local vars | Arguments | Class props | |-------|-----------|-----------|-------------| | Before (baseline) | 10,200 ms | 6,700 ms | 6,710 ms | | `OP_local` | 5,130 ms | 2,035 ms | 5,920 ms | 2.0× / 3.3× | | `OP_assign_local` | 1,880 ms | 1,125 ms | 5,000 ms | 5.4× / 6.0× | | `OP_step_local`, `OP_incc_local` | 960 ms | 968 ms | 4,830 ms | **10.6× / 6.9× | | `OP_local_prop`, `OP_assign_local_prop` | 968 ms | 972 ms | 968 ms | **10.5× / 6.9× | -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10515