From: Stefan Monnier Date: Fri, 20 Nov 2020 21:45:56 +0000 (-0500) Subject: Don't optimize away `eval` when its lexical context is different X-Git-Tag: emacs-28.0.90~5080 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2ba2e7217f520a43a098b2ef92a452868b88cc70;p=emacs.git Don't optimize away `eval` when its lexical context is different * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Obey lexical-binding. --- diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index cbda16d051b..e6f6a12b53d 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2570,7 +2570,8 @@ list that represents a doc string reference. ;; and similar macros cleaner. (put 'eval 'byte-hunk-handler 'byte-compile-file-form-eval) (defun byte-compile-file-form-eval (form) - (if (eq (car-safe (nth 1 form)) 'quote) + (if (and (eq (car-safe (nth 1 form)) 'quote) + (equal (nth 2 form) lexical-binding)) (nth 1 (nth 1 form)) (byte-compile-keep-pending form)))