Merge pull request #12720 from calixteman/fix_co

Be sure that CalculationOrder is either null or a non-empty array
This commit is contained in:
Tim van der Meij 2020-12-10 21:43:35 +01:00 committed by GitHub
commit 7097114e0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 2 deletions

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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 () {