Several upstream regex-pick tests use JS ES6 shorthand to pass a
local declared earlier in the test body, e.g.
const haystack = "..."
await run(\`pick match of "\\\\d+" from haystack ...\`, {locals: {haystack}});
The generator's `(\\w+)\\s*:\\s*...` locals regex only matched explicit
`key: value` entries, so `{haystack}` produced zero local_pairs and the
HS script failed with "Undefined symbol: haystack". Now a second pass
scans for bare identifiers in the locals object and resolves each
against a preceding `const NAME = VALUE;` in the test body.
Net test-count is unchanged (the affected regex tests still fail — now
with TIMEOUT in the regex engine rather than Undefined-symbol, so this
just moves them closer to real coverage).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>