|
181 | 181 | - [ ] Add a web-module export smoke test without instantiating browser-only globals. |
182 | 182 | - [ ] Run the symbolicate WASM package tests after building both targets. |
183 | 183 |
|
184 | | -### Task 10: Remove fast-lazy prefix rescans and lookup clones |
| 184 | +### Task 10: Validate fast-lazy prefix rescans and remove lookup clones |
185 | 185 |
|
186 | 186 | **Files:** |
187 | 187 | - Modify: `crates/sourcemap/src/lib.rs` |
|
191 | 191 | **Interfaces:** |
192 | 192 | - Preserve public `LazySourceMap::decode_line() -> Result<Vec<Mapping>, DecodeError>`. |
193 | 193 | - Internal original-position lookup must use cached slices without cloning. |
194 | | -- Fast mode stores cumulative VLQ state checkpoints keyed by the next undecoded line. |
| 194 | +- Do not add checkpoints unless a reachable public cache-miss path is proven. |
195 | 195 |
|
196 | | -- [ ] Add behavioral tests for descending and randomized lookup order and a test-only decode-work counter or equivalent observable proof that backward queries resume from a checkpoint. |
197 | | -- [ ] Confirm the descending case performs prefix rescans before implementation. |
198 | | -- [ ] Add a checkpoint map initialized with line zero state; select the nearest checkpoint at or before the target and store each decoded line's end state. |
| 196 | +- [ ] Add behavioral tests for descending and randomized lookup order. |
| 197 | +- [ ] Confirm that public backward queries cannot miss previously traversed cached lines, classifying the prefix-rescan finding as invalid. |
| 198 | +- [ ] Remove the experimental checkpoint implementation and its unreachable private-cache regression test. |
199 | 199 | - [ ] Split cache population from access so internal lookup borrows the cached vector while public `decode_line` clones only for its owned return contract. |
200 | 200 | - [ ] Add deterministic ascending, descending, repeated, and randomized fast-lazy lookup benchmarks. |
201 | | -- [ ] Measure baseline and candidate using Criterion2 or CodSpeed simulation. Keep the change only if target workloads improve and eager parse or lookup workloads do not materially regress. |
| 201 | +- [ ] Measure baseline and candidate using Criterion2. Keep only the clone-removal change after isolated warm-cache workloads improve without a meaningful eager regression. |
202 | 202 | - [ ] Run all sourcemap Rust and WASM tests. |
203 | 203 |
|
204 | 204 | ### Task 11: Make contributor onboarding executable |
|
0 commit comments