adaa9ec1 perf(router-core): reduce empty location pipeline work
Combine object-form parameter merges into one native call. Allocate a search middleware pipeline only when it is needed, and reuse the existing empty client search value. Preserve callback and structural-sharing behavior.
React Link rendering benchmark, measured separately for this commit
and its parent using exact production builds:
- Workload: benchmarks/client-nav/scenarios/links/react/speed.bench.ts
(200 persistent Links, eight navigations per measured batch).
- Apple M4, Node 24.20.0, Vitest 4.1.4, NODE_ENV=production.
- 4 fresh parent processes and 8 fresh processes for this commit,
each with warmupIterations=50 and time=10000 ms;
counterbalanced run order.
- Parent mean times (ms): 4.4180, 4.0844, 4.1333, 4.2867.
- This commit mean times (ms): 3.9412, 3.8998, 3.8950, 4.2674, 4.0423, 3.8793, 3.9043, 4.1120.
- Median run means: 4.2100 -> 3.9228 ms.
- Incremental effect: 6.82% less time; throughput change +7.32%.
- Largest within-run RME for this revision: 1.22%.
Incremental minimal/full React gzip impact: +44/+49 bytes.
Benchmark sources and commit implementation trees are unchanged.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>