From e3bde56311b3ae2392feea9b3f3ff421352c1636 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 31 May 2021 12:13:20 +0200 Subject: [PATCH] Ensure that the old/new `options` are correctly combined in `PartialEvaluator.clone` --- src/core/evaluator.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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,