* Release `pressed` in reverse (last pressed = first released). Errors are * swallowed so a release failure never masks the real error. * * Drains via pop() rather than snapshotting length: if a drainRunLoop- * orphaned press lambda resolves an in-flight input.key() AFTER finally * calls us, th
(input: Input, pressed: string[])
| 186 | * orphaned flag stops the lambda at its NEXT check, not the current await. |
| 187 | */ |
| 188 | async function releasePressed(input: Input, pressed: string[]): Promise<void> { |
| 189 | let k: string | undefined |
| 190 | while ((k = pressed.pop()) !== undefined) { |
| 191 | try { |
| 192 | await input.key(k, 'release') |
| 193 | } catch { |
| 194 | // Swallow — best-effort release. |
| 195 | } |
| 196 | } |
| 197 | } |
| 198 | |
| 199 | /** |
| 200 | * Bracket `fn()` with modifier press/release. `pressed` tracks which presses |
no test coverage detected