diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/bqn.js | 2 | ||||
| -rw-r--r-- | docs/spec/primitive.html | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/docs/bqn.js b/docs/bqn.js index b2ce92be..ccef4a07 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -169,7 +169,7 @@ let run = (B,O,F,S,L,T,src,env) => { // Bytecode, Objects, Blocks, Bodies, Locat // Runtime let assertFn = pre => (x,w) => { - if (x!==1) throw {kind:pre, message:w}; return x; + if (x!==1) throw {kind:pre, message:has(w)?w:x}; return x; } let arr = (r,sh,fill) => {r.sh=sh;r.fill=fill;return r;} let list = (l,fill) => arr(l,[l.length],fill); diff --git a/docs/spec/primitive.html b/docs/spec/primitive.html index 128fd24f..f4cf08d9 100644 --- a/docs/spec/primitive.html +++ b/docs/spec/primitive.html @@ -66,7 +66,7 @@ </ul> <h2 id="other-provided-functionality"><a class="header" href="#other-provided-functionality">Other provided functionality</a></h2> <ul> -<li><strong>Assert</strong> (<code><span class='Function'>!</span></code>) causes an error if the argument is not <code><span class='Number'>1</span></code>. If <code><span class='Value'>𝕨</span></code> is provided, it gives a message to be associated with this error (which can be any value, not necessarily a string).</li> +<li><strong>Assert</strong> (<code><span class='Function'>!</span></code>) causes an error if <code><span class='Value'>𝕩</span></code> is not <code><span class='Number'>1</span></code>. The message associated with the error (which is not used by core BQN but might be shown to the user or used by system functions) is <code><span class='Value'>𝕨</span></code> if given and <code><span class='Value'>𝕩</span></code> otherwise. It can be any value, not just a string.</li> </ul> <ul> <li><strong>Catch</strong> (<code><span class='Modifier2'>⎊</span></code>) evaluates <code><span class='Function'>𝔽</span></code> on the arguments <code><span class='Value'>𝕨</span></code> (if present) and <code><span class='Value'>𝕩</span></code>. If <code><span class='Function'>𝔽</span></code> completes without error it returns the result, but if evaluation of <code><span class='Function'>𝔽</span></code> results in an error then the error is suppressed, and Catch evaluates <code><span class='Function'>𝔾</span></code> on the arguments and returns the result. Errors in <code><span class='Function'>𝔾</span></code> are not caught. Catch only prevents evaluation errors, and not syntax errors: these are considered errors in the program as a whole rather than any particular part of it.</li> |
