From aa52e402e3fe3baee8f563c9e92e6ce4f88ec53e Mon Sep 17 00:00:00 2001 From: EugeneTes Date: Fri, 12 Jun 2026 14:26:48 +0000 Subject: [PATCH] fix: guard unknown event types, keep world.t consistent on throw (review) --- src/sim/world.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/sim/world.js b/src/sim/world.js index 95f457c..85d041f 100644 --- a/src/sim/world.js +++ b/src/sim/world.js @@ -82,10 +82,15 @@ const HANDLERS = { // Advance the world to absolute time toTime, processing all due events in order. export function advance(world, toTime) { - while (world.queue.size > 0 && world.queue.peek().time <= toTime) { - const ev = world.queue.pop(); - world.t = ev.time; - HANDLERS[ev.type](world, ev.data); + try { + while (world.queue.size > 0 && world.queue.peek().time <= toTime) { + const ev = world.queue.pop(); + world.t = ev.time; + const handler = HANDLERS[ev.type]; + if (!handler) throw new Error(`Unknown event type: ${ev.type}`); + handler(world, ev.data); + } + } finally { + world.t = toTime; } - world.t = toTime; }