( registry: Record<string, RuntimeTimelineLike | undefined> | undefined | null, master: RuntimeTimelineLike, fn: (tl: RuntimeTimelineLike) => void, )
| 59 | }; |
| 60 | |
| 61 | function forEachSiblingTimeline( |
| 62 | registry: Record<string, RuntimeTimelineLike | undefined> | undefined | null, |
| 63 | master: RuntimeTimelineLike, |
| 64 | fn: (tl: RuntimeTimelineLike) => void, |
| 65 | ): void { |
| 66 | if (!registry) return; |
| 67 | for (const tl of Object.values(registry)) { |
| 68 | if (!tl || tl === master) continue; |
| 69 | try { |
| 70 | fn(tl); |
| 71 | } catch (err) { |
| 72 | // ignore sibling failures — one broken timeline shouldn't poison play/pause |
| 73 | swallow("runtime.player.site1", err); |
| 74 | } |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | function seekTimelineDeterministically( |
| 79 | timeline: RuntimeTimelineLike, |
no test coverage detected