diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 79591b4ac..51c0c511c 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -229,9 +229,13 @@ class PartialEvaluator { return shadow(this, "_pdfFunctionFactory", pdfFunctionFactory); } - clone(newOptions = DefaultPartialEvaluatorOptions) { + clone(newOptions = null) { const newEvaluator = Object.create(this); - newEvaluator.options = newOptions; + newEvaluator.options = Object.assign( + Object.create(null), + this.options, + newOptions + ); return newEvaluator; } @@ -3948,9 +3952,7 @@ class TranslatedFont { // When parsing Type3 glyphs, always ignore them if there are errors. // Compared to the parsing of e.g. an entire page, it doesn't really // make sense to only be able to render a Type3 glyph partially. - const type3Options = Object.create(evaluator.options); - type3Options.ignoreErrors = false; - const type3Evaluator = evaluator.clone(type3Options); + const type3Evaluator = evaluator.clone({ ignoreErrors: false }); type3Evaluator.parsingType3Font = true; const translatedFont = this.font, diff --git a/test/unit/annotation_spec.js b/test/unit/annotation_spec.js index 7d8b50b45..ec88f8b65 100644 --- a/test/unit/annotation_spec.js +++ b/test/unit/annotation_spec.js @@ -2281,7 +2281,7 @@ describe("annotation", function () { { ref: buttonWidgetRef, data: buttonWidgetDict }, ]); const task = new WorkerTask("test print"); - partialEvaluator.options = { ignoreErrors: true }; + const checkboxEvaluator = partialEvaluator.clone({ ignoreErrors: true }); const annotation = await AnnotationFactory.create( xref, @@ -2293,7 +2293,7 @@ describe("annotation", function () { annotationStorage.set(annotation.data.id, { value: true }); const operatorList = await annotation.getOperatorList( - partialEvaluator, + checkboxEvaluator, task, false, annotationStorage