diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js
index ef36f8120..6f4f12e0e 100644
--- a/test/unit/api_spec.js
+++ b/test/unit/api_spec.js
@@ -44,6 +44,7 @@ import {
   PDFPageProxy,
   PDFWorker,
 } from "../../src/display/api";
+import { AutoPrintRegExp } from "../../web/ui_utils";
 import { GlobalWorkerOptions } from "../../src/display/worker_options";
 import { isNodeJS } from "../../src/shared/is_node";
 import { Metadata } from "../../src/display/metadata";
@@ -885,9 +886,6 @@ describe("api", function() {
         })
         .catch(done.fail);
     });
-    // Keep this in sync with the pattern in viewer.js. The pattern is used to
-    // detect whether or not to automatically start printing.
-    var viewerPrintRegExp = /\bprint\s*\(/;
     it("gets javascript with printing instructions (Print action)", function(done) {
       // PDF document with "Print" Named action in the OpenAction dictionary.
       var loadingTask = getDocument(buildGetDocumentParams("bug1001080.pdf"));
@@ -897,7 +895,7 @@ describe("api", function() {
       promise
         .then(function(data) {
           expect(data).toEqual(["print({});"]);
-          expect(data[0]).toMatch(viewerPrintRegExp);
+          expect(data[0]).toMatch(AutoPrintRegExp);
           loadingTask.destroy().then(done);
         })
         .catch(done.fail);
@@ -914,7 +912,7 @@ describe("api", function() {
       promise
         .then(function(data) {
           expect(data).toEqual(["print({});"]);
-          expect(data[0]).toMatch(viewerPrintRegExp);
+          expect(data[0]).toMatch(AutoPrintRegExp);
           loadingTask.destroy().then(done);
         })
         .catch(done.fail);
@@ -930,7 +928,7 @@ describe("api", function() {
           expect(data).toEqual([
             "this.print({bUI:true,bSilent:false,bShrinkToFit:true});",
           ]);
-          expect(data[0]).toMatch(viewerPrintRegExp);
+          expect(data[0]).toMatch(AutoPrintRegExp);
           loadingTask.destroy().then(done);
         })
         .catch(done.fail);
diff --git a/web/app.js b/web/app.js
index f72a713fb..1bfae6314 100644
--- a/web/app.js
+++ b/web/app.js
@@ -16,6 +16,7 @@
 
 import {
   animationStarted,
+  AutoPrintRegExp,
   DEFAULT_SCALE_VALUE,
   getGlobalEventBus,
   getPDFFileNameFromURL,
@@ -1229,10 +1230,8 @@ let PDFViewerApplication = {
         });
 
         // Hack to support auto printing.
-        let regex = /\bprint\s*\(/;
-        for (let i = 0, ii = javaScript.length; i < ii; i++) {
-          let js = javaScript[i];
-          if (js && regex.test(js)) {
+        for (const js of javaScript) {
+          if (js && AutoPrintRegExp.test(js)) {
             setTimeout(function() {
               window.print();
             });
diff --git a/web/ui_utils.js b/web/ui_utils.js
index 6b4355c8a..13c6d8f5f 100644
--- a/web/ui_utils.js
+++ b/web/ui_utils.js
@@ -56,6 +56,9 @@ const SpreadMode = {
   EVEN: 2,
 };
 
+// Used by `PDFViewerApplication`, and by the API unit-tests.
+const AutoPrintRegExp = /\bprint\s*\(/;
+
 // Replaces {{arguments}} with their values.
 function formatL10nValue(text, args) {
   if (!args) {
@@ -936,6 +939,7 @@ function moveToEndOfArray(arr, condition) {
 }
 
 export {
+  AutoPrintRegExp,
   CSS_UNITS,
   DEFAULT_SCALE_VALUE,
   DEFAULT_SCALE,