Fix return value of OSET.
authorOlof-Joachim Frahm <olof@macrolet.net>
Thu, 6 Jun 2013 23:42:32 +0000 (01:42 +0200)
committerOlof-Joachim Frahm <olof@macrolet.net>
Thu, 6 Jun 2013 23:42:32 +0000 (01:42 +0200)
src/compiler.lisp

index 02a3d43..15379f7 100644 (file)
                    "obj = obj[xstring(" (ls-compile key) ")];"
                    "if (obj === undefined) throw 'Impossible to set Javascript property.';" *newline*)
                  (butlast keys))
-      "obj[xstring(" (ls-compile (car (last keys))) ")] = " (ls-compile value) ";" *newline*)))
+      "var tmp = obj[xstring(" (ls-compile (car (last keys))) ")] = " (ls-compile value) ";" *newline*
+      "return tmp === undefined? " (ls-compile nil) " : tmp;" *newline*)))
 
 (define-raw-builtin oget (object key &rest keys)
   (code "js_to_lisp(" (ls-compile `(oget* ,object ,key ,@keys)) ")"))