Define (SETF %JS-VREF)
authorDavid Vázquez <davazp@gmail.com>
Wed, 24 Apr 2013 21:52:43 +0000 (22:52 +0100)
committerDavid Vázquez <davazp@gmail.com>
Wed, 24 Apr 2013 21:52:43 +0000 (22:52 +0100)
ecmalisp.lisp

index 85ca88d..7b82d82 100644 (file)
 (define-compilation %js-vset (var val)
   (code "(" var " = " (ls-compile val) ")"))
 
+(define-setf-expander %js-vref (var)
+  (let ((new-value (gensym)))
+    (unless (stringp var)
+      (error "a string was expected"))
+    (values nil
+            (list var)
+            (list new-value)
+            `(%js-vset ,var ,new-value)
+            `(%js-vref ,var))))
 
 ;;; Backquote implementation.
 ;;;