Fix FFI Call compilation issue
authorDavid Vázquez <davazp@gmail.com>
Wed, 19 Feb 2014 00:19:13 +0000 (01:19 +0100)
committerDavid Vázquez <davazp@gmail.com>
Wed, 19 Feb 2014 00:56:19 +0000 (01:56 +0100)
For instance, in

(#j:document:addEventListener (lambda ()
  ...))

the (lambda () ...) is not compiled correctly.

src/compiler/compiler.lisp

index 60860b3..1ea5259 100644 (file)
       #+jscl((symbolp function)
              `(call ,(convert `#',function) ,@arglist))
       ((and (consp function) (eq (car function) 'lambda))
-       `(call ,(convert `#',function) ,@arglist))
+       `(call ,(convert `(function ,function)) ,@arglist))
       ((and (consp function) (eq (car function) 'oget))
        `(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))
+                                `(call |lisp_to_js| ,(convert s)))
                               args))))
       (t
        (error "Bad function descriptor")))))