diff --git a/src/core/document.js b/src/core/document.js index 1cce067ab..4736a2839 100644 --- a/src/core/document.js +++ b/src/core/document.js @@ -1050,6 +1050,9 @@ class PDFDocument { } const ids = calculationOrder.filter(isRef).map(ref => ref.toString()); + if (ids.length === 0) { + return shadow(this, "calculationOrderIds", null); + } return shadow(this, "calculationOrderIds", ids); } } diff --git a/src/scripting_api/event.js b/src/scripting_api/event.js index f96b0f757..542f16121 100644 --- a/src/scripting_api/event.js +++ b/src/scripting_api/event.js @@ -150,7 +150,7 @@ class EventDispatcher { } calculateNow() { - if (this._calculationOrder.length === 0) { + if (!this._calculationOrder) { return; } const first = this._calculationOrder[0]; @@ -160,7 +160,7 @@ class EventDispatcher { } runCalculate(source, event) { - if (this._calculationOrder.length === 0) { + if (!this._calculationOrder) { return; } diff --git a/test/unit/document_spec.js b/test/unit/document_spec.js index 57ab01542..cde9f5105 100644 --- a/test/unit/document_spec.js +++ b/test/unit/document_spec.js @@ -187,6 +187,14 @@ describe("document", function () { acroForm.set("CO", []); pdfDocument = getDocument(acroForm); expect(pdfDocument.calculationOrderIds).toEqual(null); + + acroForm.set("CO", ["1", "2"]); + pdfDocument = getDocument(acroForm); + expect(pdfDocument.calculationOrderIds).toEqual(null); + + acroForm.set("CO", ["1", Ref.get(1, 0), "2"]); + pdfDocument = getDocument(acroForm); + expect(pdfDocument.calculationOrderIds).toEqual(["1R"]); }); it("should get field objects array or null", async function () {