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,7 +26,7 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.OperatorList = void 0;
28
28
 
29
- var _util = require("../shared/util");
29
+ var _util = require("../shared/util.js");
30
30
 
31
31
  var QueueOptimizer = function QueueOptimizerClosure() {
32
32
  function addState(parentState, pattern, checkFn, iterateFn, processFn) {
@@ -38,9 +38,9 @@ var QueueOptimizer = function QueueOptimizerClosure() {
38
38
  }
39
39
 
40
40
  state[pattern[pattern.length - 1]] = {
41
- checkFn: checkFn,
42
- iterateFn: iterateFn,
43
- processFn: processFn
41
+ checkFn,
42
+ iterateFn,
43
+ processFn
44
44
  };
45
45
  }
46
46
 
@@ -82,7 +82,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
82
82
  return fnArray[i] === _util.OPS.restore;
83
83
  }
84
84
 
85
- throw new Error("iterateInlineImageGroup - invalid pos: ".concat(pos));
85
+ throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);
86
86
  }, function foundInlineImageGroup(context, i) {
87
87
  var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;
88
88
  var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;
@@ -119,7 +119,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
119
119
  }
120
120
 
121
121
  map.push({
122
- transform: transform,
122
+ transform,
123
123
  x: currentX,
124
124
  y: currentY,
125
125
  w: img.width,
@@ -190,7 +190,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
190
190
  return fnArray[i] === _util.OPS.restore;
191
191
  }
192
192
 
193
- throw new Error("iterateImageMaskGroup - invalid pos: ".concat(pos));
193
+ throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);
194
194
  }, function foundImageMaskGroup(context, i) {
195
195
  var MIN_IMAGES_IN_MASKS_BLOCK = 10;
196
196
  var MAX_IMAGES_IN_MASKS_BLOCK = 100;
@@ -212,18 +212,20 @@ var QueueOptimizer = function QueueOptimizerClosure() {
212
212
  var isSameImage = false;
213
213
  var iTransform, transformArgs;
214
214
  var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];
215
+ const firstTransformArg0 = argsArray[iFirstTransform][0],
216
+ firstTransformArg1 = argsArray[iFirstTransform][1],
217
+ firstTransformArg2 = argsArray[iFirstTransform][2],
218
+ firstTransformArg3 = argsArray[iFirstTransform][3];
215
219
 
216
- if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {
220
+ if (firstTransformArg1 === firstTransformArg2) {
217
221
  isSameImage = true;
218
- var firstTransformArg0 = argsArray[iFirstTransform][0];
219
- var firstTransformArg3 = argsArray[iFirstTransform][3];
220
222
  iTransform = iFirstTransform + 4;
221
223
  var iPIMXO = iFirstPIMXO + 4;
222
224
 
223
225
  for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {
224
226
  transformArgs = argsArray[iTransform];
225
227
 
226
- if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {
228
+ if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) {
227
229
  if (q < MIN_IMAGES_IN_MASKS_BLOCK) {
228
230
  isSameImage = false;
229
231
  } else {
@@ -247,7 +249,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
247
249
  }
248
250
 
249
251
  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);
250
- argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);
252
+ argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]);
251
253
  } else {
252
254
  count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);
253
255
  var images = [];
@@ -316,7 +318,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
316
318
  return fnArray[i] === _util.OPS.restore;
317
319
  }
318
320
 
319
- throw new Error("iterateImageGroup - invalid pos: ".concat(pos));
321
+ throw new Error(`iterateImageGroup - invalid pos: ${pos}`);
320
322
  }, function (context, i) {
321
323
  var MIN_IMAGES_IN_BLOCK = 3;
322
324
  var MAX_IMAGES_IN_BLOCK = 1000;
@@ -384,7 +386,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
384
386
  return fnArray[i] === _util.OPS.endText;
385
387
  }
386
388
 
387
- throw new Error("iterateShowTextGroup - invalid pos: ".concat(pos));
389
+ throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);
388
390
  }, function (context, i) {
389
391
  var MIN_CHARS_IN_BLOCK = 3;
390
392
  var MAX_CHARS_IN_BLOCK = 1000;
@@ -435,23 +437,23 @@ var QueueOptimizer = function QueueOptimizerClosure() {
435
437
  }
436
438
 
437
439
  QueueOptimizer.prototype = {
438
- _optimize: function _optimize() {
439
- var fnArray = this.queue.fnArray;
440
- var i = this.lastProcessed,
440
+ _optimize() {
441
+ const fnArray = this.queue.fnArray;
442
+ let i = this.lastProcessed,
441
443
  ii = fnArray.length;
442
- var state = this.state;
443
- var match = this.match;
444
+ let state = this.state;
445
+ let match = this.match;
444
446
 
445
447
  if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {
446
448
  this.lastProcessed = ii;
447
449
  return;
448
450
  }
449
451
 
450
- var context = this.context;
452
+ const context = this.context;
451
453
 
452
454
  while (i < ii) {
453
455
  if (match) {
454
- var iterate = (0, match.iterateFn)(context, i);
456
+ const iterate = (0, match.iterateFn)(context, i);
455
457
 
456
458
  if (iterate) {
457
459
  i++;
@@ -491,15 +493,17 @@ var QueueOptimizer = function QueueOptimizerClosure() {
491
493
  this.match = match;
492
494
  this.lastProcessed = i;
493
495
  },
494
- push: function push(fn, args) {
496
+
497
+ push(fn, args) {
495
498
  this.queue.fnArray.push(fn);
496
499
  this.queue.argsArray.push(args);
497
500
 
498
501
  this._optimize();
499
502
  },
500
- flush: function flush() {
503
+
504
+ flush() {
501
505
  while (this.match) {
502
- var length = this.queue.fnArray.length;
506
+ const length = this.queue.fnArray.length;
503
507
  this.lastProcessed = (0, this.match.processFn)(this.context, length);
504
508
  this.match = null;
505
509
  this.state = null;
@@ -507,11 +511,13 @@ var QueueOptimizer = function QueueOptimizerClosure() {
507
511
  this._optimize();
508
512
  }
509
513
  },
510
- reset: function reset() {
514
+
515
+ reset() {
511
516
  this.state = null;
512
517
  this.match = null;
513
518
  this.lastProcessed = 0;
514
519
  }
520
+
515
521
  };
516
522
  return QueueOptimizer;
517
523
  }();
@@ -522,12 +528,15 @@ var NullOptimizer = function NullOptimizerClosure() {
522
528
  }
523
529
 
524
530
  NullOptimizer.prototype = {
525
- push: function push(fn, args) {
531
+ push(fn, args) {
526
532
  this.queue.fnArray.push(fn);
527
533
  this.queue.argsArray.push(args);
528
534
  },
529
- flush: function flush() {},
530
- reset: function reset() {}
535
+
536
+ flush() {},
537
+
538
+ reset() {}
539
+
531
540
  };
532
541
  return NullOptimizer;
533
542
  }();
@@ -536,22 +545,21 @@ var OperatorList = function OperatorListClosure() {
536
545
  var CHUNK_SIZE = 1000;
537
546
  var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;
538
547
 
539
- function OperatorList(intent, messageHandler, pageIndex) {
540
- this.messageHandler = messageHandler;
548
+ function OperatorList(intent, streamSink) {
549
+ this._streamSink = streamSink;
541
550
  this.fnArray = [];
542
551
  this.argsArray = [];
543
552
 
544
- if (messageHandler && intent !== 'oplist') {
553
+ if (streamSink && intent !== "oplist") {
545
554
  this.optimizer = new QueueOptimizer(this);
546
555
  } else {
547
556
  this.optimizer = new NullOptimizer(this);
548
557
  }
549
558
 
550
- this.dependencies = Object.create(null);
559
+ this.dependencies = new Set();
551
560
  this._totalLength = 0;
552
- this.pageIndex = pageIndex;
553
- this.intent = intent;
554
561
  this.weight = 0;
562
+ this._resolved = streamSink ? null : Promise.resolve();
555
563
  }
556
564
 
557
565
  OperatorList.prototype = {
@@ -559,15 +567,19 @@ var OperatorList = function OperatorListClosure() {
559
567
  return this.argsArray.length;
560
568
  },
561
569
 
570
+ get ready() {
571
+ return this._resolved || this._streamSink.ready;
572
+ },
573
+
562
574
  get totalLength() {
563
575
  return this._totalLength + this.length;
564
576
  },
565
577
 
566
- addOp: function addOp(fn, args) {
578
+ addOp(fn, args) {
567
579
  this.optimizer.push(fn, args);
568
580
  this.weight++;
569
581
 
570
- if (this.messageHandler) {
582
+ if (this._streamSink) {
571
583
  if (this.weight >= CHUNK_SIZE) {
572
584
  this.flush();
573
585
  } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {
@@ -575,27 +587,38 @@ var OperatorList = function OperatorListClosure() {
575
587
  }
576
588
  }
577
589
  },
578
- addDependency: function addDependency(dependency) {
579
- if (dependency in this.dependencies) {
590
+
591
+ addDependency(dependency) {
592
+ if (this.dependencies.has(dependency)) {
580
593
  return;
581
594
  }
582
595
 
583
- this.dependencies[dependency] = true;
596
+ this.dependencies.add(dependency);
584
597
  this.addOp(_util.OPS.dependency, [dependency]);
585
598
  },
586
- addDependencies: function addDependencies(dependencies) {
587
- for (var key in dependencies) {
588
- this.addDependency(key);
599
+
600
+ addDependencies(dependencies) {
601
+ for (const dependency of dependencies) {
602
+ this.addDependency(dependency);
589
603
  }
590
604
  },
591
- addOpList: function addOpList(opList) {
592
- Object.assign(this.dependencies, opList.dependencies);
605
+
606
+ addOpList(opList) {
607
+ if (!(opList instanceof OperatorList)) {
608
+ (0, _util.warn)('addOpList - ignoring invalid "opList" parameter.');
609
+ return;
610
+ }
611
+
612
+ for (const dependency of opList.dependencies) {
613
+ this.dependencies.add(dependency);
614
+ }
593
615
 
594
616
  for (var i = 0, ii = opList.length; i < ii; i++) {
595
617
  this.addOp(opList.fnArray[i], opList.argsArray[i]);
596
618
  }
597
619
  },
598
- getIR: function getIR() {
620
+
621
+ getIR() {
599
622
  return {
600
623
  fnArray: this.fnArray,
601
624
  argsArray: this.argsArray,
@@ -604,17 +627,19 @@ var OperatorList = function OperatorListClosure() {
604
627
  },
605
628
 
606
629
  get _transfers() {
607
- var transfers = [];
608
- var fnArray = this.fnArray,
609
- argsArray = this.argsArray,
610
- length = this.length;
611
-
612
- for (var i = 0; i < length; i++) {
630
+ const transfers = [];
631
+ const {
632
+ fnArray,
633
+ argsArray,
634
+ length
635
+ } = this;
636
+
637
+ for (let i = 0; i < length; i++) {
613
638
  switch (fnArray[i]) {
614
639
  case _util.OPS.paintInlineImageXObject:
615
640
  case _util.OPS.paintInlineImageXObjectGroup:
616
641
  case _util.OPS.paintImageMaskXObject:
617
- var arg = argsArray[i][0];
642
+ const arg = argsArray[i][0];
618
643
  ;
619
644
 
620
645
  if (!arg.cached) {
@@ -628,27 +653,25 @@ var OperatorList = function OperatorListClosure() {
628
653
  return transfers;
629
654
  },
630
655
 
631
- flush: function flush() {
632
- var lastChunk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
656
+ flush(lastChunk = false) {
633
657
  this.optimizer.flush();
634
- var length = this.length;
658
+ const length = this.length;
635
659
  this._totalLength += length;
636
- this.messageHandler.send('RenderPageChunk', {
637
- operatorList: {
638
- fnArray: this.fnArray,
639
- argsArray: this.argsArray,
640
- lastChunk: lastChunk,
641
- length: length
642
- },
643
- pageIndex: this.pageIndex,
644
- intent: this.intent
645
- }, this._transfers);
646
- this.dependencies = Object.create(null);
660
+
661
+ this._streamSink.enqueue({
662
+ fnArray: this.fnArray,
663
+ argsArray: this.argsArray,
664
+ lastChunk,
665
+ length
666
+ }, 1, this._transfers);
667
+
668
+ this.dependencies.clear();
647
669
  this.fnArray.length = 0;
648
670
  this.argsArray.length = 0;
649
671
  this.weight = 0;
650
672
  this.optimizer.reset();
651
673
  }
674
+
652
675
  };
653
676
  return OperatorList;
654
677
  }();