Remove some js-vset by (setf oget)
authorDavid Vázquez <davazp@gmail.com>
Thu, 6 Jun 2013 19:53:44 +0000 (20:53 +0100)
committerDavid Vázquez <davazp@gmail.com>
Thu, 6 Jun 2013 19:53:44 +0000 (20:53 +0100)
jscl.lisp
src/prelude.js
src/toplevel.lisp

index 4b2ac4a..e5b6582 100644 (file)
--- a/jscl.lisp
+++ b/jscl.lisp
@@ -34,8 +34,8 @@
     ("sequence"         :target)
     ("print"            :target)
     ("package"          :target)
-    ("ffi"              :target)
     ("misc"             :target)
+    ("ffi"              :both)
     ("read"             :both)
     ("defstruct"        :both)
     ("lambda-list"      :both)
index c40d0fa..9214436 100644 (file)
@@ -4,6 +4,8 @@
 var window = this;
 var nil;
 
+var lisp = {};
+
 globalEval = eval;  // Just an indirect eval
 
 function pv (x) { return x==undefined? nil: x; }
index 04423d3..a396554 100644 (file)
 
 ;;; Set some external entry point to the Lisp implementation to the
 ;;; console. It would not be necessary when FFI is finished.
-(js-eval "var lisp")
-(%js-vset "lisp" (new))
-(%js-vset "lisp.read" #'ls-read-from-string)
-(%js-vset "lisp.print" #'prin1-to-string)
-(%js-vset "lisp.eval" #'eval)
-(%js-vset "lisp.compile" (lambda (s) (ls-compile-toplevel s t)))
-(%js-vset "lisp.evalString" (lambda (str) (eval (ls-read-from-string str))))
-(%js-vset "lisp.evalInput" (lambda (str) (eval-interactive (ls-read-from-string str))))
-(%js-vset "lisp.compileString" (lambda (str) (ls-compile-toplevel (ls-read-from-string str) t)))
+(let ((*root* #j:lisp))
+  (setf #j:read #'ls-read-from-string)
+  (setf #j:print #'prin1-to-string)
+  (setf #j:eval #'eval)
+  (setf #j:compile (lambda (s) (ls-compile-toplevel s t)))
+  (setf #j:evalString (lambda (str) (eval (ls-read-from-string str))))
+  (setf #j:evalInput (lambda (str) (eval-interactive (ls-read-from-string str))))
+  (setf #j:compileString (lambda (str) (ls-compile-toplevel (ls-read-from-string str) t))))
+