// contain runtime code that jscl assumes to exist.
var window = this;
+
+var t;
var nil;
+var lisp = {};
+
globalEval = eval; // Just an indirect eval
function pv (x) { return x==undefined? nil: x; }
// Create and return a lisp string for the Javascript string STRING.
function make_lisp_string (string){
var array = codepoints(string);
- array.type = 'character'
+ array.stringp = 1
return array;
}
}
function lisp_to_js (x) {
- if (typeof x == 'object' && 'length' in x && x.type == 'character')
+ if (typeof x == 'object' && 'length' in x && x.stringp == 1)
return xstring(x);
+ else if (x === t)
+ return true;
+ else if (x === nil)
+ return false;
else if (typeof x == 'function'){
// Trampoline calling the Lisp function
return (function(){
function js_to_lisp (x) {
if (typeof x == 'string')
return make_lisp_string(x);
+ else if (x === true)
+ return t;
+ else if (x === false)
+ return nil;
else if (typeof x == 'function'){
// Trampoline calling the JS function
return (function(values, nargs){