From 54c9cc63b044ced9587f219407cdf52c889677f5 Mon Sep 17 00:00:00 2001 From: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> Date: Sun, 9 Aug 2026 15:57:35 +0300 Subject: [PATCH] surface non-EvalError exceptions in evaluation engine --- src/engine/index.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/engine/index.ts b/src/engine/index.ts index 0a3d5e3..2cc981e 100644 --- a/src/engine/index.ts +++ b/src/engine/index.ts @@ -134,11 +134,18 @@ export class SumEngine { }; try { value = evaluate(parsed.expr, ctx); - // a line without a result beats a dead sheet — swallow everything, - // including extension bugs and BigInt conversion errors + // a line without a result beats a dead sheet. + // surface unexpected bugs so the user knows why it failed } catch (e) { - if (e instanceof XRefError) lineError = e.message; - else if (!(e instanceof EvalError)) console.warn("evaluate failed:", e); + if (e instanceof XRefError) { + lineError = e.message; + } else if (e instanceof EvalError) { + // Expected evaluation failure; remain silent + } else { + // Surface unexpected bugs/BigInt errors and log them + lineError = e instanceof Error ? e.message : String(e); + console.warn("evaluate failed:", e); + } value = null; } if (value?.kind === "quantity" && !value.value.isFinite()) value = null;