From 2e7c5bb91fb8e3930a4628ef918be40ef8d6efe3 Mon Sep 17 00:00:00 2001 From: Yannick Tocquet Date: Mon, 31 Aug 2026 22:28:24 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Guard=20event.key=20before=20toL?= =?UTF-8?q?owerCase=20in=20search=20keydown=20handler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The global keydown handler calls event.key.toLowerCase() without checking that event.key is defined. Some keydown events carry no key property (browser autofill, IME composition, some mobile virtual keyboards), which throws TypeError: Cannot read properties of undefined (reading 'toLowerCase') and breaks the handler for that keystroke. Add a truthiness guard before calling toLowerCase(), matching the style already used for the other event.key comparisons in the same handler. No behavior change for real Cmd/Ctrl+K presses. --- assets/js/search.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/search.js b/assets/js/search.js index f7735dcb..785731bd 100644 --- a/assets/js/search.js +++ b/assets/js/search.js @@ -42,7 +42,7 @@ document.addEventListener("keydown", function (event) { } // Cmd+K (macOS) / Ctrl+K to toggle search wrapper - if (event.key.toLowerCase() == "k" && (event.metaKey || event.ctrlKey)) { + if (event.key && event.key.toLowerCase() == "k" && (event.metaKey || event.ctrlKey)) { event.preventDefault(); if (searchVisible) { hideSearch();