Change canvasInRendering to a WeakSet instead of a WeakMap

Note how nowhere in the code `canvasInRendering.get()` is ever called, and that this structure is really only used to store references to `<canvas>` DOM elements.
The reason for this being a `WeakMap` is probably because at the time we weren't using `core-js` polyfills yet, and since there already existed a manually implemented `WeakMap` polyfill it was probably simpler to use that.
This commit is contained in:
Jonas Jenwald 2018-10-31 18:15:23 +01:00
parent 42b7bb4751
commit f23dba1c10
2 changed files with 10 additions and 2 deletions

View File

@ -2365,7 +2365,7 @@ var RenderTask = (function RenderTaskClosure() {
* @ignore * @ignore
*/ */
var InternalRenderTask = (function InternalRenderTaskClosure() { var InternalRenderTask = (function InternalRenderTaskClosure() {
let canvasInRendering = new WeakMap(); let canvasInRendering = new WeakSet();
function InternalRenderTask(callback, params, objs, commonObjs, operatorList, function InternalRenderTask(callback, params, objs, commonObjs, operatorList,
pageNumber, canvasFactory, webGLContext, pageNumber, canvasFactory, webGLContext,
@ -2408,7 +2408,7 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
'Use different canvas or ensure previous operations were ' + 'Use different canvas or ensure previous operations were ' +
'cancelled or completed.'); 'cancelled or completed.');
} }
canvasInRendering.set(this._canvas, this); canvasInRendering.add(this._canvas);
} }
if (this._pdfBug && globalScope.StepperManager && if (this._pdfBug && globalScope.StepperManager &&

View File

@ -187,6 +187,14 @@ const hasDOM = typeof window === 'object' && typeof document === 'object';
globalScope.WeakMap = require('core-js/fn/weak-map'); globalScope.WeakMap = require('core-js/fn/weak-map');
})(); })();
// Support: IE11
(function checkWeakSet() {
if (globalScope.WeakSet) {
return;
}
globalScope.WeakSet = require('core-js/fn/weak-set');
})();
// Provides support for String.codePointAt in legacy browsers. // Provides support for String.codePointAt in legacy browsers.
// Support: IE11. // Support: IE11.
(function checkStringCodePointAt() { (function checkStringCodePointAt() {