aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-10-25 22:43:11 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-10-25 22:48:18 -0400
commit125a4ed86b6c2047253d8f107d3c95af5d528025 (patch)
tree1b4d0e478b37e49ee8e3eb6aa5af5ce8466e3105
parentf1673cf6b2736c84a320ed50da8d16109d4ea8eb (diff)
Format errors in REPL based on source
-rw-r--r--docs/bqn.js3
-rw-r--r--docs/repl.js7
2 files changed, 6 insertions, 4 deletions
diff --git a/docs/bqn.js b/docs/bqn.js
index 329dd83c..3c6d4c5b 100644
--- a/docs/bqn.js
+++ b/docs/bqn.js
@@ -82,8 +82,7 @@ let run = (B,O,S) => { // Bytecode, Objects, Sections/blocks
// Runtime
let assertFn = pre => (x,w) => {
- if (x!==1) throw Error(pre + (has(w)?(pre?": ":"")+w.join(""):""));
- return x;
+ if (x!==1) throw {src:pre, message:w}; return x;
}
let arr = (r,sh) => {r.sh=sh;return r;}
let list = l => arr(l,[l.length]);
diff --git a/docs/repl.js b/docs/repl.js
index 05f870a9..14927537 100644
--- a/docs/repl.js
+++ b/docs/repl.js
@@ -14,9 +14,12 @@ let repl = ()=>{
try {
doc.rslt.textContent=fmt(bqn(s));
} catch(e) {
- //if (console&&console.error) console.error(e.stack);
+ let s=e.src, w=e.message, i=-1;
+ if (s==="Compiler"&&w.sh[0]===2) [i,w]=w;
+ if (s==="!") w=w?fmt(w).replace(/^/gm,'! '):'! Error';
+ else w=w.sh?w.join(""):w;
doc.rslt.classList.add('err');
- doc.rslt.textContent=e.message||'Error';
+ doc.rslt.textContent=w;
}
}, 0);
}