Fix FFI funcall
authorDavid Vázquez <davazp@gmail.com>
Sat, 6 Jul 2013 02:02:56 +0000 (04:02 +0200)
committerDavid Vázquez <davazp@gmail.com>
Sat, 6 Jul 2013 02:02:56 +0000 (04:02 +0200)
src/compiler.lisp

index 6e26947..be83e08 100644 (file)
       ((and (consp function) (eq (car function) 'lambda))
        `(call ,(convert `#',function) ,@arglist))
       ((and (consp function) (eq (car function) 'oget))
-       `(call ,(convert function) ,@arglist))
+       `(call |js_to_lisp|
+              (call ,(reduce (lambda (obj p)
+                               `(property ,obj (call |xstring| ,p)))
+                             (mapcar #'convert (cdr function)))
+                    ,@(mapcar (lambda (s)
+                                `(call |lisp_to_js| ,s))
+                              args))))
       (t
        (error "Bad function descriptor")))))