about summary refs log tree commit diff stats
path: root/shell/evaluate.mu
diff options
context:
space:
mode:
Diffstat (limited to 'shell/evaluate.mu')
-rw-r--r--shell/evaluate.mu9
1 files changed, 9 insertions, 0 deletions
diff --git a/shell/evaluate.mu b/shell/evaluate.mu
index 170a1713..580a9ac3 100644
--- a/shell/evaluate.mu
+++ b/shell/evaluate.mu
@@ -2,6 +2,15 @@
 # we never modify `in` or `env`
 # ignore 'screen-cell' on a first reading; it's a hack for sandboxes
 fn evaluate _in: (addr handle cell), out: (addr handle cell), env-h: (handle cell), globals: (addr global-table), trace: (addr trace), screen-cell: (addr handle cell), keyboard-cell: (addr handle cell) {
+  # errors? skip
+  {
+    compare trace, 0
+    break-if-=
+    var error?/eax: boolean <- has-errors? trace
+    compare error?, 0/false
+    break-if-=
+    return
+  }
   var in/esi: (addr handle cell) <- copy _in
 #?   dump-cell in
 #?   {