Apply async/await, iterator destructuring, and Map spread improvements
- AutoTrackerNode.ts: replace .then().catch() promise chain with an async IIFE
so the tracker-init error path reads as a flat try/catch block. The floating-
promise behaviour is preserved (fire-and-forget from a sync DragListener
callback); the IIFE is just cleaner than nested callback chains.
- AxisGestureHandler.ts / ZoomGestureHandler.ts: replace
Array.from(map.values()) + two indexed reads with a single destructuring
assignment directly from the MapIterator: const [p0, p1] = activePointers.values()
(ES2024 iterator destructuring — no intermediate array allocation).
- PlaybackControlsNode.ts: replace Array.from(speedMap.entries()).map(...)
with [...speedMap].map(...); Map is iterable and spreads as [key, value][]
pairs, making the intermediate Array.from redundant.
https://claude.ai/code/session_014gWKu1ZSG9hxhwpFd776KV - #81
Merged