summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2024-04-29 20:36:36 +0300
committerEli Zaretskii <eliz@gnu.org>2024-04-29 20:36:36 +0300
commit4d079209f0a020e87b38567fa0058f06da069867 (patch)
treee9bcb01e4ce89ce8955f9f7a0bfa3d04a4387a12 /lisp/emacs-lisp
parentf6ae5939b950bdec86471b02e81d1b3827546a2d (diff)
parent7cf767ef54f2cf1d2873fe4dd07664b401d8044b (diff)
downloademacs-4d079209f0a020e87b38567fa0058f06da069867.tar.gz
emacs-4d079209f0a020e87b38567fa0058f06da069867.tar.bz2
emacs-4d079209f0a020e87b38567fa0058f06da069867.zip
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/bytecomp.el6
1 files changed, 4 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 7aae87c50dc..6b7b804d7de 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2962,8 +2962,10 @@ If FORM is a lambda or a macro, byte-compile it as a function."
(when (or (symbolp form) (interpreted-function-p fun))
;; `fun' is a function *value*, so try to recover its
;; corresponding source code.
- (setq lexical-binding (not (null (aref fun 2))))
- (setq fun (byte-compile--reify-function fun))
+ (if (not (interpreted-function-p fun))
+ (setq lexical-binding nil)
+ (setq lexical-binding (not (null (aref fun 2))))
+ (setq fun (byte-compile--reify-function fun)))
(setq need-a-value t))
;; Expand macros.
(setq fun (byte-compile-preprocess fun))