From 68ad3e8e9d9477ffbef03c0af7c43d68e61cfbdd Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Wed, 16 Jan 2019 20:11:17 +0100 Subject: [PATCH] Tweak the `DOMTokenList.toggle` polyfill (issue 10460) --- src/shared/compatibility.js | 7 +++++-- web/pdf_find_bar.js | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/shared/compatibility.js b/src/shared/compatibility.js index 01a2ba701..53b61cadb 100644 --- a/src/shared/compatibility.js +++ b/src/shared/compatibility.js @@ -101,14 +101,17 @@ const hasDOM = typeof window === 'object' && typeof document === 'object'; if (div.classList.toggle('test', 0) === false) { return; } - const originalDOMTokenListToggle = DOMTokenList.prototype.toggle; DOMTokenList.prototype.toggle = function(token) { if (arguments.length > 1) { const force = !!arguments[1]; return (this[force ? 'add' : 'remove'](token), force); } - return originalDOMTokenListToggle(token); + + if (this.contains(token)) { + return (this.remove(token), false); + } + return (this.add(token), true); }; })(); diff --git a/web/pdf_find_bar.js b/web/pdf_find_bar.js index 665352797..d86993307 100644 --- a/web/pdf_find_bar.js +++ b/web/pdf_find_bar.js @@ -180,7 +180,7 @@ class PDFFindBar { } Promise.resolve(matchesCountMsg).then((msg) => { this.findResultsCount.textContent = msg; - this.findResultsCount.classList[!total ? 'add' : 'remove']('hidden'); + this.findResultsCount.classList.toggle('hidden', !total); // Since `updateResultsCount` may be called from `PDFFindController`, // ensure that the width of the findbar is always updated correctly. this._adjustWidth();