From: David Vázquez Date: Fri, 3 May 2013 10:52:01 +0000 (+0100) Subject: Some string conversions in error reporting X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=0d37d7988530c312463a72eaa42ab1fb4a340f68;hp=b4f81895de2164b4f362c3050b74a45c1f5069e2;p=jscl.git Some string conversions in error reporting --- diff --git a/jscl.html b/jscl.html index 0fde9fc..782db20 100644 --- a/jscl.html +++ b/jscl.html @@ -87,7 +87,9 @@ jqconsole.Write(xstring(lisp.print(pv, 1, vs[i])) + '\n', 'jqconsole-return'); } } catch(error) { - jqconsole.Write('ERROR: ' + (error.message || error) + '\n', 'jqconsole-error'); + var msg = error.message || error || 'Unknown error'; + if (typeof(msg) != 'string') msg = xstring(msg); + jqconsole.Write('ERROR: ' + msg + '\n', 'jqconsole-error'); } } else { jqconsole.Write(xstring(lisp.compileString(pv, 1, make_lisp_string(input.slice(1)))) + '\n', 'jqconsole-return'); diff --git a/src/compiler.lisp b/src/compiler.lisp index 29c491b..94e77ce 100644 --- a/src/compiler.lisp +++ b/src/compiler.lisp @@ -433,7 +433,7 @@ " && ") ")" *newline* (indent - "throw 'Unknown keyword argument ' + arguments[i].name;" *newline*)) + "throw 'Unknown keyword argument ' + xstring(arguments[i].name);" *newline*)) "}" *newline*))))) (defun parse-lambda-list (ll) @@ -1443,14 +1443,14 @@ (js!selfcall "var symbol = " x ";" *newline* "var value = symbol.value;" *newline* - "if (value === undefined) throw \"Variable `\" + symbol.name + \"' is unbound.\";" *newline* + "if (value === undefined) throw \"Variable `\" + xstring(symbol.name) + \"' is unbound.\";" *newline* "return value;" *newline*)) (define-builtin symbol-function (x) (js!selfcall "var symbol = " x ";" *newline* "var func = symbol.fvalue;" *newline* - "if (func === undefined) throw \"Function `\" + symbol.name + \"' is undefined.\";" *newline* + "if (func === undefined) throw \"Function `\" + xstring(symbol.name) + \"' is undefined.\";" *newline* "return func;" *newline*)) (define-builtin symbol-plist (x) diff --git a/src/prelude.js b/src/prelude.js index 1aa5e0f..ca5cfdb 100644 --- a/src/prelude.js +++ b/src/prelude.js @@ -60,3 +60,4 @@ function make_lisp_string (string){ } function xstring(x){ return x.join(''); } +