pdfjs-dist 2.2.228 → 2.6.347

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (229) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +8816 -19300
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +27185 -35746
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +26665 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/es5/build/pdf.min.js +22 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +61231 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/build/pdf.worker.min.js +22 -0
  17. package/es5/image_decoders/pdf.image_decoders.js +12529 -0
  18. package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
  19. package/es5/image_decoders/pdf.image_decoders.min.js +22 -0
  20. package/es5/web/images/annotation-check.svg +11 -0
  21. package/es5/web/images/annotation-comment.svg +16 -0
  22. package/es5/web/images/annotation-help.svg +26 -0
  23. package/es5/web/images/annotation-insert.svg +10 -0
  24. package/es5/web/images/annotation-key.svg +11 -0
  25. package/es5/web/images/annotation-newparagraph.svg +11 -0
  26. package/es5/web/images/annotation-noicon.svg +7 -0
  27. package/es5/web/images/annotation-note.svg +42 -0
  28. package/es5/web/images/annotation-paragraph.svg +16 -0
  29. package/es5/web/images/loading-icon.gif +0 -0
  30. package/es5/web/images/shadow.png +0 -0
  31. package/es5/web/pdf_viewer.css +406 -0
  32. package/es5/web/pdf_viewer.js +7886 -0
  33. package/es5/web/pdf_viewer.js.map +1 -0
  34. package/image_decoders/pdf.image_decoders.js +1498 -4832
  35. package/image_decoders/pdf.image_decoders.js.map +1 -1
  36. package/image_decoders/pdf.image_decoders.min.js +22 -1
  37. package/lib/README.md +7 -0
  38. package/lib/core/annotation.js +1144 -927
  39. package/lib/core/arithmetic_decoder.js +81 -97
  40. package/lib/core/bidi.js +54 -46
  41. package/lib/core/ccitt.js +88 -81
  42. package/lib/core/ccitt_stream.js +15 -14
  43. package/lib/core/cff_parser.js +747 -716
  44. package/lib/core/charsets.js +4 -4
  45. package/lib/core/chunked_stream.js +462 -553
  46. package/lib/core/cmap.js +231 -277
  47. package/lib/core/colorspace.js +715 -857
  48. package/lib/core/core_utils.js +57 -52
  49. package/lib/core/crypto.js +416 -437
  50. package/lib/core/document.js +629 -670
  51. package/lib/core/encodings.js +15 -15
  52. package/lib/core/evaluator.js +3229 -2800
  53. package/lib/core/font_renderer.js +135 -178
  54. package/lib/core/fonts.js +602 -534
  55. package/lib/core/function.js +355 -279
  56. package/lib/core/glyphlist.js +4527 -4526
  57. package/lib/core/image.js +442 -439
  58. package/lib/core/image_utils.js +221 -61
  59. package/lib/core/jbig2.js +325 -316
  60. package/lib/core/jbig2_stream.js +18 -17
  61. package/lib/core/jpeg_stream.js +21 -26
  62. package/lib/core/jpg.js +289 -233
  63. package/lib/core/jpx.js +161 -143
  64. package/lib/core/jpx_stream.js +28 -28
  65. package/lib/core/metrics.js +2928 -2928
  66. package/lib/core/murmurhash3.js +87 -102
  67. package/lib/core/obj.js +1343 -1300
  68. package/lib/core/operator_list.js +90 -67
  69. package/lib/core/parser.js +990 -987
  70. package/lib/core/pattern.js +105 -77
  71. package/lib/core/pdf_manager.js +149 -316
  72. package/lib/core/primitives.js +156 -104
  73. package/lib/core/ps_parser.js +175 -214
  74. package/lib/core/standard_fonts.js +237 -236
  75. package/lib/core/stream.js +94 -74
  76. package/lib/core/type1_parser.js +89 -69
  77. package/lib/core/unicode.js +1654 -1654
  78. package/lib/core/worker.js +275 -290
  79. package/lib/core/worker_stream.js +101 -210
  80. package/lib/core/writer.js +242 -0
  81. package/lib/display/annotation_layer.js +772 -1041
  82. package/lib/display/annotation_storage.js +89 -0
  83. package/lib/display/api.js +1575 -1868
  84. package/lib/display/api_compatibility.js +12 -17
  85. package/lib/display/canvas.js +370 -222
  86. package/lib/display/content_disposition.js +40 -59
  87. package/lib/display/display_utils.js +341 -536
  88. package/lib/display/fetch_stream.js +188 -304
  89. package/lib/display/font_loader.js +282 -414
  90. package/lib/display/metadata.js +81 -99
  91. package/lib/display/network.js +362 -511
  92. package/lib/display/network_utils.js +25 -18
  93. package/lib/display/node_stream.js +283 -465
  94. package/lib/display/node_utils.js +87 -0
  95. package/lib/display/optional_content_config.js +184 -0
  96. package/lib/display/pattern_helper.js +93 -44
  97. package/lib/display/svg.js +1163 -1401
  98. package/lib/display/text_layer.js +154 -137
  99. package/lib/display/transport_stream.js +237 -375
  100. package/lib/display/webgl.js +70 -83
  101. package/lib/display/worker_options.js +3 -3
  102. package/lib/display/xml_parser.js +303 -392
  103. package/lib/examples/node/domstubs.js +37 -37
  104. package/lib/pdf.js +220 -58
  105. package/lib/pdf.worker.js +14 -6
  106. package/lib/shared/compatibility.js +3 -246
  107. package/lib/shared/is_node.js +7 -6
  108. package/lib/shared/message_handler.js +327 -332
  109. package/lib/shared/util.js +271 -306
  110. package/lib/test/unit/annotation_spec.js +1902 -763
  111. package/lib/test/unit/annotation_storage_spec.js +83 -0
  112. package/lib/test/unit/api_spec.js +790 -592
  113. package/lib/test/unit/bidi_spec.js +7 -7
  114. package/lib/test/unit/cff_parser_spec.js +73 -72
  115. package/lib/test/unit/clitests_helper.js +7 -9
  116. package/lib/test/unit/cmap_spec.js +86 -88
  117. package/lib/test/unit/colorspace_spec.js +346 -154
  118. package/lib/test/unit/core_utils_spec.js +125 -105
  119. package/lib/test/unit/crypto_spec.js +232 -185
  120. package/lib/test/unit/custom_spec.js +150 -24
  121. package/lib/test/unit/display_svg_spec.js +34 -39
  122. package/lib/test/unit/display_utils_spec.js +139 -149
  123. package/lib/test/unit/document_spec.js +128 -17
  124. package/lib/test/unit/encodings_spec.js +12 -34
  125. package/lib/test/unit/evaluator_spec.js +112 -91
  126. package/lib/test/unit/fetch_stream_spec.js +31 -29
  127. package/lib/test/unit/function_spec.js +206 -204
  128. package/lib/test/unit/jasmine-boot.js +48 -32
  129. package/lib/test/unit/message_handler_spec.js +173 -159
  130. package/lib/test/unit/metadata_spec.js +71 -71
  131. package/lib/test/unit/murmurhash3_spec.js +12 -12
  132. package/lib/test/unit/network_spec.js +13 -11
  133. package/lib/test/unit/network_utils_spec.js +158 -144
  134. package/lib/test/unit/node_stream_spec.js +76 -90
  135. package/lib/test/unit/parser_spec.js +108 -114
  136. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  137. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  138. package/lib/test/unit/pdf_history_spec.js +32 -32
  139. package/lib/test/unit/primitives_spec.js +337 -156
  140. package/lib/test/unit/stream_spec.js +16 -14
  141. package/lib/test/unit/test_utils.js +91 -304
  142. package/lib/test/unit/testreporter.js +33 -22
  143. package/lib/test/unit/type1_parser_spec.js +42 -42
  144. package/lib/test/unit/ui_utils_spec.js +299 -461
  145. package/lib/test/unit/unicode_spec.js +42 -42
  146. package/lib/test/unit/util_spec.js +129 -149
  147. package/lib/test/unit/writer_spec.js +84 -0
  148. package/lib/web/annotation_layer_builder.js +78 -111
  149. package/lib/web/app.js +1542 -1267
  150. package/lib/web/app_options.js +76 -91
  151. package/lib/web/base_tree_viewer.js +100 -0
  152. package/lib/web/base_viewer.js +869 -834
  153. package/lib/web/chromecom.js +165 -252
  154. package/lib/web/debugger.js +149 -205
  155. package/lib/web/download_manager.js +34 -58
  156. package/lib/web/firefox_print_service.js +62 -34
  157. package/lib/web/firefoxcom.js +206 -374
  158. package/lib/web/genericcom.js +26 -108
  159. package/lib/web/genericl10n.js +24 -153
  160. package/lib/web/grab_to_pan.js +30 -30
  161. package/lib/web/interfaces.js +80 -254
  162. package/lib/web/overlay_manager.js +70 -246
  163. package/lib/web/password_prompt.js +38 -64
  164. package/lib/web/pdf_attachment_viewer.js +150 -126
  165. package/lib/web/pdf_cursor_tools.js +75 -102
  166. package/lib/web/pdf_document_properties.js +229 -383
  167. package/lib/web/pdf_find_bar.js +136 -170
  168. package/lib/web/pdf_find_controller.js +492 -548
  169. package/lib/web/pdf_find_utils.js +13 -13
  170. package/lib/web/pdf_history.js +397 -406
  171. package/lib/web/pdf_layer_viewer.js +208 -0
  172. package/lib/web/pdf_link_service.js +304 -348
  173. package/lib/web/pdf_outline_viewer.js +119 -212
  174. package/lib/web/pdf_page_view.js +474 -513
  175. package/lib/web/pdf_presentation_mode.js +308 -357
  176. package/lib/web/pdf_print_service.js +96 -110
  177. package/lib/web/pdf_rendering_queue.js +87 -108
  178. package/lib/web/pdf_sidebar.js +286 -302
  179. package/lib/web/pdf_sidebar_resizer.js +92 -119
  180. package/lib/web/pdf_single_page_viewer.js +77 -126
  181. package/lib/web/pdf_thumbnail_view.js +289 -297
  182. package/lib/web/pdf_thumbnail_viewer.js +202 -206
  183. package/lib/web/pdf_viewer.component.js +20 -21
  184. package/lib/web/pdf_viewer.js +55 -115
  185. package/lib/web/preferences.js +69 -273
  186. package/lib/web/secondary_toolbar.js +164 -196
  187. package/lib/web/text_layer_builder.js +284 -319
  188. package/lib/web/toolbar.js +217 -210
  189. package/lib/web/ui_utils.js +274 -421
  190. package/lib/web/view_history.js +52 -226
  191. package/lib/web/viewer_compatibility.js +21 -6
  192. package/package.json +4 -9
  193. package/types/display/annotation_layer.d.ts +61 -0
  194. package/types/display/annotation_storage.d.ts +36 -0
  195. package/types/display/api.d.ts +1107 -0
  196. package/types/display/api_compatibility.d.ts +1 -0
  197. package/types/display/canvas.d.ts +4 -0
  198. package/types/display/content_disposition.d.ts +7 -0
  199. package/types/display/display_utils.d.ts +243 -0
  200. package/types/display/fetch_stream.d.ts +67 -0
  201. package/types/display/font_loader.d.ts +19 -0
  202. package/types/display/metadata.d.ts +9 -0
  203. package/types/display/network.d.ts +80 -0
  204. package/types/display/network_utils.d.ts +14 -0
  205. package/types/display/node_stream.d.ts +72 -0
  206. package/types/display/node_utils.d.ts +6 -0
  207. package/types/display/optional_content_config.d.ts +12 -0
  208. package/types/display/pattern_helper.d.ts +5 -0
  209. package/types/display/svg.d.ts +2 -0
  210. package/types/display/text_layer.d.ts +83 -0
  211. package/types/display/transport_stream.d.ts +57 -0
  212. package/types/display/webgl.d.ts +20 -0
  213. package/types/display/worker_options.d.ts +27 -0
  214. package/types/display/xml_parser.d.ts +35 -0
  215. package/types/pdf.d.ts +33 -0
  216. package/types/shared/compatibility.d.ts +1 -0
  217. package/types/shared/is_node.d.ts +1 -0
  218. package/types/shared/message_handler.d.ts +62 -0
  219. package/types/shared/util.d.ts +421 -0
  220. package/web/images/shadow.png +0 -0
  221. package/web/pdf_viewer.css +29 -27
  222. package/web/pdf_viewer.js +3524 -4746
  223. package/web/pdf_viewer.js.map +1 -1
  224. package/webpack.js +6 -5
  225. package/external/streams/streams-lib.js +0 -3962
  226. package/external/url/url-lib.js +0 -627
  227. package/lib/shared/streams_polyfill.js +0 -43
  228. package/lib/shared/url_polyfill.js +0 -56
  229. package/web/images/texture.png +0 -0
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2019 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -26,70 +26,55 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.WorkerMessageHandler = exports.WorkerTask = void 0;
28
28
 
29
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _util = require("../shared/util");
31
+ var _primitives = require("./primitives.js");
32
32
 
33
- var _primitives = require("./primitives");
33
+ var _pdf_manager = require("./pdf_manager.js");
34
34
 
35
- var _pdf_manager = require("./pdf_manager");
35
+ var _writer = require("./writer.js");
36
36
 
37
- var _is_node = _interopRequireDefault(require("../shared/is_node"));
37
+ var _is_node = require("../shared/is_node.js");
38
38
 
39
- var _message_handler = require("../shared/message_handler");
39
+ var _message_handler = require("../shared/message_handler.js");
40
40
 
41
- var _worker_stream = require("./worker_stream");
41
+ var _worker_stream = require("./worker_stream.js");
42
42
 
43
- var _core_utils = require("./core_utils");
43
+ var _core_utils = require("./core_utils.js");
44
44
 
45
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
46
-
47
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
48
-
49
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
50
-
51
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
52
-
53
- function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
54
-
55
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
56
-
57
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
58
-
59
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
60
-
61
- var WorkerTask = function WorkerTaskClosure() {
62
- function WorkerTask(name) {
45
+ class WorkerTask {
46
+ constructor(name) {
63
47
  this.name = name;
64
48
  this.terminated = false;
65
49
  this._capability = (0, _util.createPromiseCapability)();
66
50
  }
67
51
 
68
- WorkerTask.prototype = {
69
- get finished() {
70
- return this._capability.promise;
71
- },
72
-
73
- finish: function finish() {
74
- this._capability.resolve();
75
- },
76
- terminate: function terminate() {
77
- this.terminated = true;
78
- },
79
- ensureNotTerminated: function ensureNotTerminated() {
80
- if (this.terminated) {
81
- throw new Error('Worker task was terminated');
82
- }
52
+ get finished() {
53
+ return this._capability.promise;
54
+ }
55
+
56
+ finish() {
57
+ this._capability.resolve();
58
+ }
59
+
60
+ terminate() {
61
+ this.terminated = true;
62
+ }
63
+
64
+ ensureNotTerminated() {
65
+ if (this.terminated) {
66
+ throw new Error("Worker task was terminated");
83
67
  }
84
- };
85
- return WorkerTask;
86
- }();
68
+ }
69
+
70
+ }
87
71
 
88
72
  exports.WorkerTask = WorkerTask;
89
- var WorkerMessageHandler = {
90
- setup: function setup(handler, port) {
73
+
74
+ class WorkerMessageHandler {
75
+ static setup(handler, port) {
91
76
  var testMessageProcessed = false;
92
- handler.on('test', function wphSetupTest(data) {
77
+ handler.on("test", function wphSetupTest(data) {
93
78
  if (testMessageProcessed) {
94
79
  return;
95
80
  }
@@ -97,60 +82,60 @@ var WorkerMessageHandler = {
97
82
  testMessageProcessed = true;
98
83
 
99
84
  if (!(data instanceof Uint8Array)) {
100
- handler.send('test', false);
85
+ handler.send("test", null);
101
86
  return;
102
87
  }
103
88
 
104
- var supportTransfers = data[0] === 255;
89
+ const supportTransfers = data[0] === 255;
105
90
  handler.postMessageTransfers = supportTransfers;
106
- var xhr = new XMLHttpRequest();
107
- var responseExists = 'response' in xhr;
108
-
109
- try {
110
- xhr.responseType;
111
- } catch (e) {
112
- responseExists = false;
113
- }
114
-
115
- if (!responseExists) {
116
- handler.send('test', false);
117
- return;
118
- }
119
-
120
- handler.send('test', {
121
- supportTypedArray: true,
122
- supportTransfers: supportTransfers
91
+ handler.send("test", {
92
+ supportTransfers
123
93
  });
124
94
  });
125
- handler.on('configure', function wphConfigure(data) {
95
+ handler.on("configure", function wphConfigure(data) {
126
96
  (0, _util.setVerbosityLevel)(data.verbosity);
127
97
  });
128
- handler.on('GetDocRequest', function wphSetupDoc(data) {
98
+ handler.on("GetDocRequest", function wphSetupDoc(data) {
129
99
  return WorkerMessageHandler.createDocumentHandler(data, port);
130
100
  });
131
- },
132
- createDocumentHandler: function createDocumentHandler(docParams, port) {
101
+ }
102
+
103
+ static createDocumentHandler(docParams, port) {
133
104
  var pdfManager;
134
105
  var terminated = false;
135
106
  var cancelXHRs = null;
136
107
  var WorkerTasks = [];
137
- var verbosity = (0, _util.getVerbosityLevel)();
138
- var apiVersion = docParams.apiVersion;
139
- var workerVersion = '2.2.228';
108
+ const verbosity = (0, _util.getVerbosityLevel)();
109
+ const apiVersion = docParams.apiVersion;
110
+ const workerVersion = '2.6.347';
140
111
 
141
112
  if (apiVersion !== workerVersion) {
142
- throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
113
+ throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
114
+ }
115
+
116
+ const enumerableProperties = [];
117
+
118
+ for (const property in []) {
119
+ enumerableProperties.push(property);
120
+ }
121
+
122
+ if (enumerableProperties.length) {
123
+ throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + enumerableProperties.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s.");
124
+ }
125
+
126
+ if (typeof ReadableStream === "undefined" || typeof Promise.allSettled === "undefined") {
127
+ throw new Error("The browser/environment lacks native support for critical " + "functionality used by the PDF.js library (e.g. " + "`ReadableStream` and/or `Promise.allSettled`); " + "please use an ES5-compatible build instead.");
143
128
  }
144
129
 
145
130
  var docId = docParams.docId;
146
131
  var docBaseUrl = docParams.docBaseUrl;
147
- var workerHandlerName = docParams.docId + '_worker';
132
+ var workerHandlerName = docParams.docId + "_worker";
148
133
  var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
149
134
  handler.postMessageTransfers = docParams.postMessageTransfers;
150
135
 
151
136
  function ensureNotTerminated() {
152
137
  if (terminated) {
153
- throw new Error('Worker was terminated');
138
+ throw new Error("Worker was terminated");
154
139
  }
155
140
  }
156
141
 
@@ -164,73 +149,31 @@ var WorkerMessageHandler = {
164
149
  WorkerTasks.splice(i, 1);
165
150
  }
166
151
 
167
- function loadDocument(_x) {
168
- return _loadDocument.apply(this, arguments);
169
- }
152
+ async function loadDocument(recoveryMode) {
153
+ await pdfManager.ensureDoc("checkHeader");
154
+ await pdfManager.ensureDoc("parseStartXRef");
155
+ await pdfManager.ensureDoc("parse", [recoveryMode]);
170
156
 
171
- function _loadDocument() {
172
- _loadDocument = _asyncToGenerator(
173
- /*#__PURE__*/
174
- _regenerator["default"].mark(function _callee(recoveryMode) {
175
- var _ref4, _ref5, numPages, fingerprint;
176
-
177
- return _regenerator["default"].wrap(function _callee$(_context) {
178
- while (1) {
179
- switch (_context.prev = _context.next) {
180
- case 0:
181
- _context.next = 2;
182
- return pdfManager.ensureDoc('checkHeader');
183
-
184
- case 2:
185
- _context.next = 4;
186
- return pdfManager.ensureDoc('parseStartXRef');
187
-
188
- case 4:
189
- _context.next = 6;
190
- return pdfManager.ensureDoc('parse', [recoveryMode]);
191
-
192
- case 6:
193
- if (recoveryMode) {
194
- _context.next = 9;
195
- break;
196
- }
197
-
198
- _context.next = 9;
199
- return pdfManager.ensureDoc('checkFirstPage');
200
-
201
- case 9:
202
- _context.next = 11;
203
- return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
204
-
205
- case 11:
206
- _ref4 = _context.sent;
207
- _ref5 = _slicedToArray(_ref4, 2);
208
- numPages = _ref5[0];
209
- fingerprint = _ref5[1];
210
- return _context.abrupt("return", {
211
- numPages: numPages,
212
- fingerprint: fingerprint
213
- });
214
-
215
- case 16:
216
- case "end":
217
- return _context.stop();
218
- }
219
- }
220
- }, _callee);
221
- }));
222
- return _loadDocument.apply(this, arguments);
157
+ if (!recoveryMode) {
158
+ await pdfManager.ensureDoc("checkFirstPage");
159
+ }
160
+
161
+ const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprint")]);
162
+ return {
163
+ numPages,
164
+ fingerprint
165
+ };
223
166
  }
224
167
 
225
168
  function getPdfManager(data, evaluatorOptions) {
226
169
  var pdfManagerCapability = (0, _util.createPromiseCapability)();
227
- var pdfManager;
170
+ let newPdfManager;
228
171
  var source = data.source;
229
172
 
230
173
  if (source.data) {
231
174
  try {
232
- pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
233
- pdfManagerCapability.resolve(pdfManager);
175
+ newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
176
+ pdfManagerCapability.resolve(newPdfManager);
234
177
  } catch (ex) {
235
178
  pdfManagerCapability.reject(ex);
236
179
  }
@@ -255,37 +198,37 @@ var WorkerMessageHandler = {
255
198
  }
256
199
 
257
200
  var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
258
- pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
201
+ newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
259
202
  msgHandler: handler,
260
203
  password: source.password,
261
204
  length: fullRequest.contentLength,
262
- disableAutoFetch: disableAutoFetch,
205
+ disableAutoFetch,
263
206
  rangeChunkSize: source.rangeChunkSize
264
207
  }, evaluatorOptions, docBaseUrl);
265
208
 
266
- for (var i = 0; i < cachedChunks.length; i++) {
267
- pdfManager.sendProgressiveData(cachedChunks[i]);
209
+ for (let i = 0; i < cachedChunks.length; i++) {
210
+ newPdfManager.sendProgressiveData(cachedChunks[i]);
268
211
  }
269
212
 
270
213
  cachedChunks = [];
271
- pdfManagerCapability.resolve(pdfManager);
214
+ pdfManagerCapability.resolve(newPdfManager);
272
215
  cancelXHRs = null;
273
- })["catch"](function (reason) {
216
+ }).catch(function (reason) {
274
217
  pdfManagerCapability.reject(reason);
275
218
  cancelXHRs = null;
276
219
  });
277
220
  var loaded = 0;
278
221
 
279
- var flushChunks = function flushChunks() {
222
+ var flushChunks = function () {
280
223
  var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
281
224
 
282
225
  if (source.length && pdfFile.length !== source.length) {
283
- (0, _util.warn)('reported HTTP length is different from actual');
226
+ (0, _util.warn)("reported HTTP length is different from actual");
284
227
  }
285
228
 
286
229
  try {
287
- pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
288
- pdfManagerCapability.resolve(pdfManager);
230
+ newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
231
+ pdfManagerCapability.resolve(newPdfManager);
289
232
  } catch (ex) {
290
233
  pdfManagerCapability.reject(ex);
291
234
  }
@@ -294,12 +237,15 @@ var WorkerMessageHandler = {
294
237
  };
295
238
 
296
239
  var readPromise = new Promise(function (resolve, reject) {
297
- var readChunk = function readChunk(chunk) {
240
+ var readChunk = function ({
241
+ value,
242
+ done
243
+ }) {
298
244
  try {
299
245
  ensureNotTerminated();
300
246
 
301
- if (chunk.done) {
302
- if (!pdfManager) {
247
+ if (done) {
248
+ if (!newPdfManager) {
303
249
  flushChunks();
304
250
  }
305
251
 
@@ -307,20 +253,19 @@ var WorkerMessageHandler = {
307
253
  return;
308
254
  }
309
255
 
310
- var data = chunk.value;
311
- loaded += (0, _util.arrayByteLength)(data);
256
+ loaded += (0, _util.arrayByteLength)(value);
312
257
 
313
258
  if (!fullRequest.isStreamingSupported) {
314
- handler.send('DocProgress', {
315
- loaded: loaded,
259
+ handler.send("DocProgress", {
260
+ loaded,
316
261
  total: Math.max(loaded, fullRequest.contentLength || 0)
317
262
  });
318
263
  }
319
264
 
320
- if (pdfManager) {
321
- pdfManager.sendProgressiveData(data);
265
+ if (newPdfManager) {
266
+ newPdfManager.sendProgressiveData(value);
322
267
  } else {
323
- cachedChunks.push(data);
268
+ cachedChunks.push(value);
324
269
  }
325
270
 
326
271
  fullRequest.read().then(readChunk, reject);
@@ -331,13 +276,13 @@ var WorkerMessageHandler = {
331
276
 
332
277
  fullRequest.read().then(readChunk, reject);
333
278
  });
334
- readPromise["catch"](function (e) {
279
+ readPromise.catch(function (e) {
335
280
  pdfManagerCapability.reject(e);
336
281
  cancelXHRs = null;
337
282
  });
338
283
 
339
- cancelXHRs = function cancelXHRs() {
340
- pdfStream.cancelAllRequests('abort');
284
+ cancelXHRs = function (reason) {
285
+ pdfStream.cancelAllRequests(reason);
341
286
  };
342
287
 
343
288
  return pdfManagerCapability.promise;
@@ -346,43 +291,41 @@ var WorkerMessageHandler = {
346
291
  function setupDoc(data) {
347
292
  function onSuccess(doc) {
348
293
  ensureNotTerminated();
349
- handler.send('GetDoc', {
294
+ handler.send("GetDoc", {
350
295
  pdfInfo: doc
351
296
  });
352
297
  }
353
298
 
354
- function onFailure(e) {
299
+ function onFailure(ex) {
355
300
  ensureNotTerminated();
356
301
 
357
- if (e instanceof _util.PasswordException) {
358
- var task = new WorkerTask('PasswordException: response ' + e.code);
302
+ if (ex instanceof _util.PasswordException) {
303
+ var task = new WorkerTask(`PasswordException: response ${ex.code}`);
359
304
  startWorkerTask(task);
360
- handler.sendWithPromise('PasswordRequest', e).then(function (data) {
305
+ handler.sendWithPromise("PasswordRequest", ex).then(function ({
306
+ password
307
+ }) {
361
308
  finishWorkerTask(task);
362
- pdfManager.updatePassword(data.password);
309
+ pdfManager.updatePassword(password);
363
310
  pdfManagerReady();
364
- })["catch"](function (boundException) {
311
+ }).catch(function () {
365
312
  finishWorkerTask(task);
366
- handler.send('PasswordException', boundException);
367
- }.bind(null, e));
368
- } else if (e instanceof _util.InvalidPDFException) {
369
- handler.send('InvalidPDF', e);
370
- } else if (e instanceof _util.MissingPDFException) {
371
- handler.send('MissingPDF', e);
372
- } else if (e instanceof _util.UnexpectedResponseException) {
373
- handler.send('UnexpectedResponse', e);
313
+ handler.send("DocException", ex);
314
+ });
315
+ } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {
316
+ handler.send("DocException", ex);
374
317
  } else {
375
- handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));
318
+ handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString()));
376
319
  }
377
320
  }
378
321
 
379
322
  function pdfManagerReady() {
380
323
  ensureNotTerminated();
381
- loadDocument(false).then(onSuccess, function loadFailure(ex) {
324
+ loadDocument(false).then(onSuccess, function (reason) {
382
325
  ensureNotTerminated();
383
326
 
384
- if (!(ex instanceof _core_utils.XRefParseException)) {
385
- onFailure(ex);
327
+ if (!(reason instanceof _core_utils.XRefParseException)) {
328
+ onFailure(reason);
386
329
  return;
387
330
  }
388
331
 
@@ -391,165 +334,202 @@ var WorkerMessageHandler = {
391
334
  ensureNotTerminated();
392
335
  loadDocument(true).then(onSuccess, onFailure);
393
336
  });
394
- }, onFailure);
337
+ });
395
338
  }
396
339
 
397
340
  ensureNotTerminated();
398
341
  var evaluatorOptions = {
399
- forceDataSchema: data.disableCreateObjectURL,
400
342
  maxImageSize: data.maxImageSize,
401
343
  disableFontFace: data.disableFontFace,
402
- nativeImageDecoderSupport: data.nativeImageDecoderSupport,
403
344
  ignoreErrors: data.ignoreErrors,
404
- isEvalSupported: data.isEvalSupported
345
+ isEvalSupported: data.isEvalSupported,
346
+ fontExtraProperties: data.fontExtraProperties
405
347
  };
406
348
  getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
407
349
  if (terminated) {
408
- newPdfManager.terminate();
409
- throw new Error('Worker was terminated');
350
+ newPdfManager.terminate(new _util.AbortException("Worker was terminated."));
351
+ throw new Error("Worker was terminated");
410
352
  }
411
353
 
412
354
  pdfManager = newPdfManager;
413
355
  pdfManager.onLoadedStream().then(function (stream) {
414
- handler.send('DataLoaded', {
356
+ handler.send("DataLoaded", {
415
357
  length: stream.bytes.byteLength
416
358
  });
417
359
  });
418
360
  }).then(pdfManagerReady, onFailure);
419
361
  }
420
362
 
421
- handler.on('GetPage', function wphSetupGetPage(data) {
363
+ handler.on("GetPage", function wphSetupGetPage(data) {
422
364
  return pdfManager.getPage(data.pageIndex).then(function (page) {
423
- return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref) {
424
- var _ref2 = _slicedToArray(_ref, 4),
425
- rotate = _ref2[0],
426
- ref = _ref2[1],
427
- userUnit = _ref2[2],
428
- view = _ref2[3];
429
-
365
+ return Promise.all([pdfManager.ensure(page, "rotate"), pdfManager.ensure(page, "ref"), pdfManager.ensure(page, "userUnit"), pdfManager.ensure(page, "view")]).then(function ([rotate, ref, userUnit, view]) {
430
366
  return {
431
- rotate: rotate,
432
- ref: ref,
433
- userUnit: userUnit,
434
- view: view
367
+ rotate,
368
+ ref,
369
+ userUnit,
370
+ view
435
371
  };
436
372
  });
437
373
  });
438
374
  });
439
- handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
440
- var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
375
+ handler.on("GetPageIndex", function wphSetupGetPageIndex({
376
+ ref
377
+ }) {
378
+ const pageRef = _primitives.Ref.get(ref.num, ref.gen);
441
379
 
442
- var catalog = pdfManager.pdfDocument.catalog;
443
- return catalog.getPageIndex(ref);
380
+ return pdfManager.ensureCatalog("getPageIndex", [pageRef]);
381
+ });
382
+ handler.on("GetDestinations", function wphSetupGetDestinations(data) {
383
+ return pdfManager.ensureCatalog("destinations");
444
384
  });
445
- handler.on('GetDestinations', function wphSetupGetDestinations(data) {
446
- return pdfManager.ensureCatalog('destinations');
385
+ handler.on("GetDestination", function wphSetupGetDestination(data) {
386
+ return pdfManager.ensureCatalog("getDestination", [data.id]);
447
387
  });
448
- handler.on('GetDestination', function wphSetupGetDestination(data) {
449
- return pdfManager.ensureCatalog('getDestination', [data.id]);
388
+ handler.on("GetPageLabels", function wphSetupGetPageLabels(data) {
389
+ return pdfManager.ensureCatalog("pageLabels");
450
390
  });
451
- handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {
452
- return pdfManager.ensureCatalog('pageLabels');
391
+ handler.on("GetPageLayout", function wphSetupGetPageLayout(data) {
392
+ return pdfManager.ensureCatalog("pageLayout");
453
393
  });
454
- handler.on('GetPageLayout', function wphSetupGetPageLayout(data) {
455
- return pdfManager.ensureCatalog('pageLayout');
394
+ handler.on("GetPageMode", function wphSetupGetPageMode(data) {
395
+ return pdfManager.ensureCatalog("pageMode");
456
396
  });
457
- handler.on('GetPageMode', function wphSetupGetPageMode(data) {
458
- return pdfManager.ensureCatalog('pageMode');
397
+ handler.on("GetViewerPreferences", function (data) {
398
+ return pdfManager.ensureCatalog("viewerPreferences");
459
399
  });
460
- handler.on('GetViewerPreferences', function (data) {
461
- return pdfManager.ensureCatalog('viewerPreferences');
400
+ handler.on("GetOpenAction", function (data) {
401
+ return pdfManager.ensureCatalog("openAction");
462
402
  });
463
- handler.on('GetOpenActionDestination', function (data) {
464
- return pdfManager.ensureCatalog('openActionDestination');
403
+ handler.on("GetAttachments", function wphSetupGetAttachments(data) {
404
+ return pdfManager.ensureCatalog("attachments");
465
405
  });
466
- handler.on('GetAttachments', function wphSetupGetAttachments(data) {
467
- return pdfManager.ensureCatalog('attachments');
406
+ handler.on("GetJavaScript", function wphSetupGetJavaScript(data) {
407
+ return pdfManager.ensureCatalog("javaScript");
468
408
  });
469
- handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {
470
- return pdfManager.ensureCatalog('javaScript');
409
+ handler.on("GetOutline", function wphSetupGetOutline(data) {
410
+ return pdfManager.ensureCatalog("documentOutline");
471
411
  });
472
- handler.on('GetOutline', function wphSetupGetOutline(data) {
473
- return pdfManager.ensureCatalog('documentOutline');
412
+ handler.on("GetOptionalContentConfig", function (data) {
413
+ return pdfManager.ensureCatalog("optionalContentConfig");
474
414
  });
475
- handler.on('GetPermissions', function (data) {
476
- return pdfManager.ensureCatalog('permissions');
415
+ handler.on("GetPermissions", function (data) {
416
+ return pdfManager.ensureCatalog("permissions");
477
417
  });
478
- handler.on('GetMetadata', function wphSetupGetMetadata(data) {
479
- return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);
418
+ handler.on("GetMetadata", function wphSetupGetMetadata(data) {
419
+ return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]);
480
420
  });
481
- handler.on('GetData', function wphSetupGetData(data) {
421
+ handler.on("GetData", function wphSetupGetData(data) {
482
422
  pdfManager.requestLoadedStream();
483
423
  return pdfManager.onLoadedStream().then(function (stream) {
484
424
  return stream.bytes;
485
425
  });
486
426
  });
487
- handler.on('GetStats', function wphSetupGetStats(data) {
488
- return pdfManager.pdfDocument.xref.stats;
427
+ handler.on("GetStats", function wphSetupGetStats(data) {
428
+ return pdfManager.ensureXRef("stats");
489
429
  });
490
- handler.on('GetAnnotations', function (_ref3) {
491
- var pageIndex = _ref3.pageIndex,
492
- intent = _ref3.intent;
430
+ handler.on("GetAnnotations", function ({
431
+ pageIndex,
432
+ intent
433
+ }) {
493
434
  return pdfManager.getPage(pageIndex).then(function (page) {
494
435
  return page.getAnnotationsData(intent);
495
436
  });
496
437
  });
497
- handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
438
+ handler.on("SaveDocument", function ({
439
+ numPages,
440
+ annotationStorage,
441
+ filename
442
+ }) {
443
+ pdfManager.requestLoadedStream();
444
+ const promises = [pdfManager.onLoadedStream()];
445
+ const document = pdfManager.pdfDocument;
446
+
447
+ for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {
448
+ promises.push(pdfManager.getPage(pageIndex).then(function (page) {
449
+ const task = new WorkerTask(`Save: page ${pageIndex}`);
450
+ return page.save(handler, task, annotationStorage);
451
+ }));
452
+ }
453
+
454
+ return Promise.all(promises).then(([stream, ...refs]) => {
455
+ let newRefs = [];
456
+
457
+ for (const ref of refs) {
458
+ newRefs = ref.filter(x => x !== null).reduce((a, b) => a.concat(b), newRefs);
459
+ }
460
+
461
+ if (newRefs.length === 0) {
462
+ return stream.bytes;
463
+ }
464
+
465
+ const xref = document.xref;
466
+ let newXrefInfo = Object.create(null);
467
+
468
+ if (xref.trailer) {
469
+ const _info = Object.create(null);
470
+
471
+ const xrefInfo = xref.trailer.get("Info") || null;
472
+
473
+ if (xrefInfo) {
474
+ xrefInfo.forEach((key, value) => {
475
+ if ((0, _util.isString)(key) && (0, _util.isString)(value)) {
476
+ _info[key] = (0, _util.stringToPDFString)(value);
477
+ }
478
+ });
479
+ }
480
+
481
+ newXrefInfo = {
482
+ rootRef: xref.trailer.getRaw("Root") || null,
483
+ encrypt: xref.trailer.getRaw("Encrypt") || null,
484
+ newRef: xref.getNewRef(),
485
+ infoRef: xref.trailer.getRaw("Info") || null,
486
+ info: _info,
487
+ fileIds: xref.trailer.getRaw("ID") || null,
488
+ startXRef: document.startXRef,
489
+ filename
490
+ };
491
+ }
492
+
493
+ xref.resetNewRef();
494
+ return (0, _writer.incrementalUpdate)(stream.bytes, newXrefInfo, newRefs);
495
+ });
496
+ });
497
+ handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
498
498
  var pageIndex = data.pageIndex;
499
499
  pdfManager.getPage(pageIndex).then(function (page) {
500
- var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);
500
+ var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);
501
501
  startWorkerTask(task);
502
- var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
502
+ const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
503
503
  page.getOperatorList({
504
- handler: handler,
505
- task: task,
504
+ handler,
505
+ sink,
506
+ task,
506
507
  intent: data.intent,
507
- renderInteractiveForms: data.renderInteractiveForms
508
- }).then(function (operatorList) {
508
+ renderInteractiveForms: data.renderInteractiveForms,
509
+ annotationStorage: data.annotationStorage
510
+ }).then(function (operatorListInfo) {
509
511
  finishWorkerTask(task);
510
512
 
511
513
  if (start) {
512
- (0, _util.info)("page=".concat(pageIndex + 1, " - getOperatorList: time=") + "".concat(Date.now() - start, "ms, len=").concat(operatorList.totalLength));
514
+ (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);
513
515
  }
514
- }, function (e) {
516
+
517
+ sink.close();
518
+ }, function (reason) {
515
519
  finishWorkerTask(task);
516
520
 
517
521
  if (task.terminated) {
518
522
  return;
519
523
  }
520
524
 
521
- handler.send('UnsupportedFeature', {
522
- featureId: _util.UNSUPPORTED_FEATURES.unknown
523
- });
524
- var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
525
- var wrappedException;
526
-
527
- if (typeof e === 'string') {
528
- wrappedException = {
529
- message: e,
530
- stack: minimumStackMessage
531
- };
532
- } else if (_typeof(e) === 'object') {
533
- wrappedException = {
534
- message: e.message || e.toString(),
535
- stack: e.stack || minimumStackMessage
536
- };
537
- } else {
538
- wrappedException = {
539
- message: 'Unknown exception type: ' + _typeof(e),
540
- stack: minimumStackMessage
541
- };
542
- }
543
-
544
- handler.send('PageError', {
545
- pageIndex: pageIndex,
546
- error: wrappedException,
547
- intent: data.intent
525
+ handler.send("UnsupportedFeature", {
526
+ featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList
548
527
  });
528
+ sink.error(reason);
549
529
  });
550
530
  });
551
531
  }, this);
552
- handler.on('GetTextContent', function wphExtractText(data, sink) {
532
+ handler.on("GetTextContent", function wphExtractText(data, sink) {
553
533
  var pageIndex = data.pageIndex;
554
534
 
555
535
  sink.onPull = function (desiredSize) {};
@@ -557,20 +537,20 @@ var WorkerMessageHandler = {
557
537
  sink.onCancel = function (reason) {};
558
538
 
559
539
  pdfManager.getPage(pageIndex).then(function (page) {
560
- var task = new WorkerTask('GetTextContent: page ' + pageIndex);
540
+ var task = new WorkerTask("GetTextContent: page " + pageIndex);
561
541
  startWorkerTask(task);
562
- var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
542
+ const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
563
543
  page.extractTextContent({
564
- handler: handler,
565
- task: task,
566
- sink: sink,
544
+ handler,
545
+ task,
546
+ sink,
567
547
  normalizeWhitespace: data.normalizeWhitespace,
568
548
  combineTextItems: data.combineTextItems
569
549
  }).then(function () {
570
550
  finishWorkerTask(task);
571
551
 
572
552
  if (start) {
573
- (0, _util.info)("page=".concat(pageIndex + 1, " - getTextContent: time=") + "".concat(Date.now() - start, "ms"));
553
+ (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);
574
554
  }
575
555
 
576
556
  sink.close();
@@ -582,30 +562,32 @@ var WorkerMessageHandler = {
582
562
  }
583
563
 
584
564
  sink.error(reason);
585
- throw reason;
586
565
  });
587
566
  });
588
567
  });
589
- handler.on('FontFallback', function (data) {
568
+ handler.on("FontFallback", function (data) {
590
569
  return pdfManager.fontFallback(data.id, handler);
591
570
  });
592
- handler.on('Cleanup', function wphCleanup(data) {
593
- return pdfManager.cleanup();
571
+ handler.on("Cleanup", function wphCleanup(data) {
572
+ return pdfManager.cleanup(true);
594
573
  });
595
- handler.on('Terminate', function wphTerminate(data) {
574
+ handler.on("Terminate", function wphTerminate(data) {
596
575
  terminated = true;
576
+ const waitOn = [];
597
577
 
598
578
  if (pdfManager) {
599
- pdfManager.terminate();
579
+ pdfManager.terminate(new _util.AbortException("Worker was terminated."));
580
+ const cleanupPromise = pdfManager.cleanup();
581
+ waitOn.push(cleanupPromise);
600
582
  pdfManager = null;
583
+ } else {
584
+ (0, _primitives.clearPrimitiveCaches)();
601
585
  }
602
586
 
603
587
  if (cancelXHRs) {
604
- cancelXHRs();
588
+ cancelXHRs(new _util.AbortException("Worker was terminated."));
605
589
  }
606
590
 
607
- (0, _primitives.clearPrimitiveCaches)();
608
- var waitOn = [];
609
591
  WorkerTasks.forEach(function (task) {
610
592
  waitOn.push(task.finished);
611
593
  task.terminate();
@@ -615,24 +597,27 @@ var WorkerMessageHandler = {
615
597
  handler = null;
616
598
  });
617
599
  });
618
- handler.on('Ready', function wphReady(data) {
600
+ handler.on("Ready", function wphReady(data) {
619
601
  setupDoc(docParams);
620
602
  docParams = null;
621
603
  });
622
604
  return workerHandlerName;
623
- },
624
- initializeFromPort: function initializeFromPort(port) {
625
- var handler = new _message_handler.MessageHandler('worker', 'main', port);
605
+ }
606
+
607
+ static initializeFromPort(port) {
608
+ var handler = new _message_handler.MessageHandler("worker", "main", port);
626
609
  WorkerMessageHandler.setup(handler, port);
627
- handler.send('ready', null);
610
+ handler.send("ready", null);
628
611
  }
629
- };
612
+
613
+ }
614
+
630
615
  exports.WorkerMessageHandler = WorkerMessageHandler;
631
616
 
632
617
  function isMessagePort(maybePort) {
633
- return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
618
+ return typeof maybePort.postMessage === "function" && "onmessage" in maybePort;
634
619
  }
635
620
 
636
- if (typeof window === 'undefined' && !(0, _is_node["default"])() && typeof self !== 'undefined' && isMessagePort(self)) {
621
+ if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) {
637
622
  WorkerMessageHandler.initializeFromPort(self);
638
623
  }