From 8afc542ae29c37a21008123f0a781cbe889ddf23 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 11 Oct 2024 15:34:58 +0200 Subject: [PATCH] Move the regular expression caching into the `PDFDateString` class This code is old enough that it pre-dates availability of private class fields, hence why this wasn't done originally. --- src/display/display_utils.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/display/display_utils.js b/src/display/display_utils.js index ae6172632ab80..93189f4c9de85 100644 --- a/src/display/display_utils.js +++ b/src/display/display_utils.js @@ -935,9 +935,9 @@ function deprecated(details) { console.log("Deprecated API usage: " + details); } -let pdfDateStringRegex; - class PDFDateString { + static #regex; + /** * Convert a PDF date string to a JavaScript `Date` object. * @@ -960,7 +960,7 @@ class PDFDateString { } // Lazily initialize the regular expression. - pdfDateStringRegex ||= new RegExp( + this.#regex ||= new RegExp( "^D:" + // Prefix (required) "(\\d{4})" + // Year (required) "(\\d{2})?" + // Month (optional) @@ -978,7 +978,7 @@ class PDFDateString { // Optional fields that don't satisfy the requirements from the regular // expression (such as incorrect digit counts or numbers that are out of // range) will fall back the defaults from the specification. - const matches = pdfDateStringRegex.exec(input); + const matches = this.#regex.exec(input); if (!matches) { return null; }