diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-25 22:43:11 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-25 22:48:18 -0400 |
| commit | 125a4ed86b6c2047253d8f107d3c95af5d528025 (patch) | |
| tree | 1b4d0e478b37e49ee8e3eb6aa5af5ce8466e3105 | |
| parent | f1673cf6b2736c84a320ed50da8d16109d4ea8eb (diff) | |
Format errors in REPL based on source
| -rw-r--r-- | docs/bqn.js | 3 | ||||
| -rw-r--r-- | docs/repl.js | 7 |
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); } |
