diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js
index 8c81be108..49f1ff95d 100644
--- a/src/display/annotation_layer.js
+++ b/src/display/annotation_layer.js
@@ -1943,14 +1943,10 @@ class PopupElement {
       // The modification date is shown in the popup instead of the creation
       // date if it is available and can be parsed correctly, which is
       // consistent with other viewers such as Adobe Acrobat.
-      this.#dateTimePromise = parent.l10n.get(
-        "annotation_date_string",
-        {
-          date: dateObject.toLocaleDateString(),
-          time: dateObject.toLocaleTimeString(),
-        },
-        "{{date}}, {{time}}"
-      );
+      this.#dateTimePromise = parent.l10n.get("annotation_date_string", {
+        date: dateObject.toLocaleDateString(),
+        time: dateObject.toLocaleTimeString(),
+      });
     }
 
     this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());
@@ -1969,7 +1965,7 @@ class PopupElement {
       this.#toggle();
     }
 
-    if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
+    if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("TESTING")) {
       // Since the popup is lazily created, we need to ensure that it'll be
       // created and displayed during reference tests.
       this.#parent.popupShow.push(async () => {
@@ -2788,7 +2784,14 @@ class AnnotationLayer {
     this.viewport = viewport;
     this.zIndex = 0;
 
-    if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
+    if (
+      typeof PDFJSDev !== "undefined" &&
+      PDFJSDev.test("GENERIC && !TESTING")
+    ) {
+      const { NullL10n } = require("pdfjs-web/l10n_utils.js");
+      this.l10n ||= NullL10n;
+    }
+    if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("TESTING")) {
       // For testing purposes.
       Object.defineProperty(this, "showPopups", {
         value: async () => {
diff --git a/web/l10n_utils.js b/web/l10n_utils.js
index 42e2d46de..c4931135b 100644
--- a/web/l10n_utils.js
+++ b/web/l10n_utils.js
@@ -13,6 +13,13 @@
  * limitations under the License.
  */
 
+/**
+ * PLEASE NOTE: This file is currently imported in both the `web/` and
+ *              `src/display/` folders, hence be EXTREMELY careful about
+ *              introducing any dependencies here since that can lead to an
+ *              unexpected/unnecessary size increase of the *built* files.
+ */
+
 /**
  * A subset of the l10n strings in the `l10n/en-US/viewer.properties` file.
  */
@@ -63,6 +70,8 @@ const DEFAULT_L10N_STRINGS = {
   unexpected_response_error: "Unexpected server response.",
   rendering_error: "An error occurred while rendering the page.",
 
+  annotation_date_string: "{{date}}, {{time}}",
+
   printing_not_supported:
     "Warning: Printing is not fully supported by this browser.",
   printing_not_ready: "Warning: The PDF is not fully loaded for printing.",