summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/bytecomp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/bytecomp.el')
-rw-r--r--lisp/emacs-lisp/bytecomp.el12
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 437c5da3340..be117d1184f 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2689,11 +2689,13 @@ If FORM is a lambda or a macro, byte-compile it as a function."
(byte-compile-out 'byte-unbind 1))
(defun byte-compile-track-mouse (form)
- (let ((byte-compile-bound-variables byte-compile-bound-variables))
- (byte-compile-push-constant t)
- (byte-compile-variable-ref 'byte-varbind 'track-mouse)
- (byte-compile-body-do-effect (cdr form))
- (byte-compile-out 'byte-unbind 1)))
+ (byte-compile-form
+ (list
+ 'funcall
+ (list 'quote
+ (list 'lambda nil
+ (cons 'track-mouse
+ (byte-compile-top-level-body (cdr form))))))))
(defun byte-compile-condition-case (form)
(let* ((var (nth 1 form))