* 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[])
| 129 | * orphaned flag stops the lambda at its NEXT check, not the current await. |
| 130 | */ |
| 131 | async function releasePressed(input: Input, pressed: string[]): Promise<void> { |
| 132 | let k: string | undefined |
| 133 | while ((k = pressed.pop()) !== undefined) { |
| 134 | try { |
| 135 | await input.key(k, 'release') |
| 136 | } catch { |
| 137 | // Swallow — best-effort release. |
| 138 | } |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | /** |
| 143 | * Bracket `fn()` with modifier press/release. `pressed` tracks which presses |
no test coverage detected