pdfjs-dist 2.0.943 → 2.1.266

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 (159) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +15329 -11095
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +12497 -4184
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/image_decoders/pdf.image_decoders.js +3438 -1209
  9. package/image_decoders/pdf.image_decoders.js.map +1 -1
  10. package/image_decoders/pdf.image_decoders.min.js +1 -1
  11. package/lib/core/annotation.js +335 -109
  12. package/lib/core/arithmetic_decoder.js +274 -244
  13. package/lib/core/bidi.js +64 -5
  14. package/lib/core/ccitt.js +172 -17
  15. package/lib/core/ccitt_stream.js +14 -5
  16. package/lib/core/cff_parser.js +304 -28
  17. package/lib/core/charsets.js +4 -3
  18. package/lib/core/chunked_stream.js +379 -149
  19. package/lib/core/cmap.js +210 -40
  20. package/lib/core/colorspace.js +332 -187
  21. package/lib/core/crypto.js +289 -44
  22. package/lib/core/document.js +508 -249
  23. package/lib/core/encodings.js +18 -9
  24. package/lib/core/evaluator.js +657 -119
  25. package/lib/core/font_renderer.js +217 -34
  26. package/lib/core/fonts.js +632 -41
  27. package/lib/core/function.js +252 -26
  28. package/lib/core/glyphlist.js +2 -1
  29. package/lib/core/image.js +124 -27
  30. package/lib/core/jbig2.js +425 -65
  31. package/lib/core/jbig2_stream.js +18 -7
  32. package/lib/core/jpeg_stream.js +24 -8
  33. package/lib/core/jpg.js +208 -16
  34. package/lib/core/jpx.js +395 -5
  35. package/lib/core/jpx_stream.js +17 -5
  36. package/lib/core/metrics.js +3 -3
  37. package/lib/core/murmurhash3.js +23 -5
  38. package/lib/core/obj.js +625 -132
  39. package/lib/core/operator_list.js +104 -3
  40. package/lib/core/parser.js +262 -25
  41. package/lib/core/pattern.js +144 -12
  42. package/lib/core/pdf_manager.js +104 -70
  43. package/lib/core/primitives.js +74 -21
  44. package/lib/core/ps_parser.js +133 -44
  45. package/lib/core/standard_fonts.js +9 -9
  46. package/lib/core/stream.js +283 -31
  47. package/lib/core/type1_parser.js +138 -6
  48. package/lib/core/unicode.js +28 -1
  49. package/lib/core/worker.js +192 -57
  50. package/lib/display/annotation_layer.js +303 -123
  51. package/lib/display/api.js +1073 -574
  52. package/lib/display/api_compatibility.js +4 -1
  53. package/lib/display/canvas.js +314 -18
  54. package/lib/display/content_disposition.js +70 -23
  55. package/lib/display/dom_utils.js +112 -59
  56. package/lib/display/fetch_stream.js +95 -50
  57. package/lib/display/font_loader.js +250 -132
  58. package/lib/display/metadata.js +37 -15
  59. package/lib/display/network.js +123 -34
  60. package/lib/display/network_utils.js +23 -10
  61. package/lib/display/node_stream.js +162 -65
  62. package/lib/display/pattern_helper.js +57 -6
  63. package/lib/display/svg.js +194 -18
  64. package/lib/display/text_layer.js +128 -14
  65. package/lib/display/transport_stream.js +83 -27
  66. package/lib/display/webgl.js +63 -17
  67. package/lib/display/worker_options.js +4 -3
  68. package/lib/display/xml_parser.js +162 -52
  69. package/lib/examples/node/domstubs.js +56 -3
  70. package/lib/pdf.js +15 -2
  71. package/lib/pdf.worker.js +4 -2
  72. package/lib/shared/compatibility.js +129 -26
  73. package/lib/shared/global_scope.js +1 -1
  74. package/lib/shared/is_node.js +3 -3
  75. package/lib/shared/message_handler.js +103 -45
  76. package/lib/shared/streams_polyfill.js +20 -16
  77. package/lib/shared/url_polyfill.js +8 -2
  78. package/lib/shared/util.js +246 -84
  79. package/lib/test/unit/annotation_spec.js +99 -73
  80. package/lib/test/unit/api_spec.js +347 -113
  81. package/lib/test/unit/bidi_spec.js +6 -6
  82. package/lib/test/unit/cff_parser_spec.js +17 -5
  83. package/lib/test/unit/clitests_helper.js +7 -8
  84. package/lib/test/unit/cmap_spec.js +79 -25
  85. package/lib/test/unit/colorspace_spec.js +65 -18
  86. package/lib/test/unit/crypto_spec.js +16 -4
  87. package/lib/test/unit/custom_spec.js +40 -52
  88. package/lib/test/unit/display_svg_spec.js +32 -16
  89. package/lib/test/unit/document_spec.js +2 -2
  90. package/lib/test/unit/dom_utils_spec.js +8 -8
  91. package/lib/test/unit/encodings_spec.js +24 -44
  92. package/lib/test/unit/evaluator_spec.js +15 -8
  93. package/lib/test/unit/function_spec.js +16 -4
  94. package/lib/test/unit/jasmine-boot.js +29 -16
  95. package/lib/test/unit/message_handler_spec.js +19 -6
  96. package/lib/test/unit/metadata_spec.js +64 -11
  97. package/lib/test/unit/murmurhash3_spec.js +2 -2
  98. package/lib/test/unit/network_spec.js +19 -4
  99. package/lib/test/unit/network_utils_spec.js +6 -4
  100. package/lib/test/unit/node_stream_spec.js +50 -26
  101. package/lib/test/unit/parser_spec.js +13 -29
  102. package/lib/test/unit/pdf_find_controller_spec.js +144 -32
  103. package/lib/test/unit/pdf_find_utils_spec.js +10 -9
  104. package/lib/test/unit/pdf_history_spec.js +20 -8
  105. package/lib/test/unit/primitives_spec.js +23 -3
  106. package/lib/test/unit/stream_spec.js +8 -3
  107. package/lib/test/unit/test_utils.js +89 -26
  108. package/lib/test/unit/testreporter.js +19 -1
  109. package/lib/test/unit/type1_parser_spec.js +7 -5
  110. package/lib/test/unit/ui_utils_spec.js +162 -38
  111. package/lib/test/unit/unicode_spec.js +13 -10
  112. package/lib/test/unit/util_spec.js +89 -9
  113. package/lib/web/annotation_layer_builder.js +38 -21
  114. package/lib/web/app.js +610 -245
  115. package/lib/web/app_options.js +54 -34
  116. package/lib/web/base_viewer.js +359 -162
  117. package/lib/web/chromecom.js +159 -80
  118. package/lib/web/debugger.js +161 -17
  119. package/lib/web/download_manager.js +29 -11
  120. package/lib/web/firefox_print_service.js +16 -8
  121. package/lib/web/firefoxcom.js +127 -91
  122. package/lib/web/genericcom.js +50 -31
  123. package/lib/web/genericl10n.js +46 -34
  124. package/lib/web/grab_to_pan.js +25 -3
  125. package/lib/web/interfaces.js +108 -61
  126. package/lib/web/overlay_manager.js +67 -45
  127. package/lib/web/password_prompt.js +20 -12
  128. package/lib/web/pdf_attachment_viewer.js +37 -17
  129. package/lib/web/pdf_cursor_tools.js +38 -15
  130. package/lib/web/pdf_document_properties.js +65 -24
  131. package/lib/web/pdf_find_bar.js +48 -20
  132. package/lib/web/pdf_find_controller.js +290 -89
  133. package/lib/web/pdf_find_utils.js +19 -3
  134. package/lib/web/pdf_history.js +186 -49
  135. package/lib/web/pdf_link_service.js +127 -52
  136. package/lib/web/pdf_outline_viewer.js +71 -21
  137. package/lib/web/pdf_page_view.js +188 -63
  138. package/lib/web/pdf_presentation_mode.js +98 -33
  139. package/lib/web/pdf_print_service.js +54 -10
  140. package/lib/web/pdf_rendering_queue.js +26 -4
  141. package/lib/web/pdf_sidebar.js +116 -62
  142. package/lib/web/pdf_sidebar_resizer.js +41 -15
  143. package/lib/web/pdf_single_page_viewer.js +65 -68
  144. package/lib/web/pdf_thumbnail_view.js +102 -31
  145. package/lib/web/pdf_thumbnail_viewer.js +62 -22
  146. package/lib/web/pdf_viewer.component.js +111 -31
  147. package/lib/web/pdf_viewer.js +80 -60
  148. package/lib/web/preferences.js +61 -39
  149. package/lib/web/secondary_toolbar.js +101 -82
  150. package/lib/web/text_layer_builder.js +124 -69
  151. package/lib/web/toolbar.js +67 -27
  152. package/lib/web/ui_utils.js +284 -128
  153. package/lib/web/view_history.js +75 -51
  154. package/lib/web/viewer_compatibility.js +2 -1
  155. package/package.json +1 -1
  156. package/web/pdf_viewer.css +1 -1
  157. package/web/pdf_viewer.js +2200 -973
  158. package/web/pdf_viewer.js.map +1 -1
  159. package/lib/web/dom_events.js +0 -140
@@ -19,53 +19,65 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.OperatorList = undefined;
27
+ exports.OperatorList = void 0;
28
28
 
29
- var _util = require('../shared/util');
29
+ var _util = require("../shared/util");
30
30
 
31
31
  var QueueOptimizer = function QueueOptimizerClosure() {
32
32
  function addState(parentState, pattern, checkFn, iterateFn, processFn) {
33
33
  var state = parentState;
34
+
34
35
  for (var i = 0, ii = pattern.length - 1; i < ii; i++) {
35
36
  var item = pattern[i];
36
37
  state = state[item] || (state[item] = []);
37
38
  }
39
+
38
40
  state[pattern[pattern.length - 1]] = {
39
41
  checkFn: checkFn,
40
42
  iterateFn: iterateFn,
41
43
  processFn: processFn
42
44
  };
43
45
  }
46
+
44
47
  function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {
45
48
  var iFirstPIMXO = iFirstSave + 2;
49
+
46
50
  for (var i = 0; i < count; i++) {
47
51
  var arg = argsArray[iFirstPIMXO + 4 * i];
48
52
  var imageMask = arg.length === 1 && arg[0];
53
+
49
54
  if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {
50
55
  fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;
51
56
  continue;
52
57
  }
58
+
53
59
  break;
54
60
  }
61
+
55
62
  return count - i;
56
63
  }
64
+
57
65
  var InitialState = [];
58
66
  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {
59
67
  var fnArray = context.fnArray;
60
68
  var iFirstSave = context.iCurr - 3;
61
69
  var pos = (i - iFirstSave) % 4;
70
+
62
71
  switch (pos) {
63
72
  case 0:
64
73
  return fnArray[i] === _util.OPS.save;
74
+
65
75
  case 1:
66
76
  return fnArray[i] === _util.OPS.transform;
77
+
67
78
  case 2:
68
79
  return fnArray[i] === _util.OPS.paintInlineImageXObject;
80
+
69
81
  case 3:
70
82
  return fnArray[i] === _util.OPS.restore;
71
83
  }
@@ -81,24 +93,29 @@ var QueueOptimizer = function QueueOptimizerClosure() {
81
93
  var iFirstTransform = curr - 2;
82
94
  var iFirstPIIXO = curr - 1;
83
95
  var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);
96
+
84
97
  if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {
85
98
  return i - (i - iFirstSave) % 4;
86
99
  }
100
+
87
101
  var maxX = 0;
88
102
  var map = [],
89
103
  maxLineHeight = 0;
90
104
  var currentX = IMAGE_PADDING,
91
105
  currentY = IMAGE_PADDING;
92
106
  var q;
107
+
93
108
  for (q = 0; q < count; q++) {
94
109
  var transform = argsArray[iFirstTransform + (q << 2)];
95
110
  var img = argsArray[iFirstPIIXO + (q << 2)][0];
111
+
96
112
  if (currentX + img.width > MAX_WIDTH) {
97
113
  maxX = Math.max(maxX, currentX);
98
114
  currentY += maxLineHeight + 2 * IMAGE_PADDING;
99
115
  currentX = 0;
100
116
  maxLineHeight = 0;
101
117
  }
118
+
102
119
  map.push({
103
120
  transform: transform,
104
121
  x: currentX,
@@ -109,22 +126,27 @@ var QueueOptimizer = function QueueOptimizerClosure() {
109
126
  currentX += img.width + 2 * IMAGE_PADDING;
110
127
  maxLineHeight = Math.max(maxLineHeight, img.height);
111
128
  }
129
+
112
130
  var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;
113
131
  var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;
114
132
  var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);
115
133
  var imgRowSize = imgWidth << 2;
134
+
116
135
  for (q = 0; q < count; q++) {
117
136
  var data = argsArray[iFirstPIIXO + (q << 2)][0].data;
118
137
  var rowSize = map[q].w << 2;
119
138
  var dataOffset = 0;
120
139
  var offset = map[q].x + map[q].y * imgWidth << 2;
121
140
  imgData.set(data.subarray(0, rowSize), offset - imgRowSize);
141
+
122
142
  for (var k = 0, kk = map[q].h; k < kk; k++) {
123
143
  imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);
124
144
  dataOffset += rowSize;
125
145
  offset += imgRowSize;
126
146
  }
147
+
127
148
  imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);
149
+
128
150
  while (offset >= 0) {
129
151
  data[offset - 4] = data[offset];
130
152
  data[offset - 3] = data[offset + 1];
@@ -137,6 +159,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
137
159
  offset -= imgRowSize;
138
160
  }
139
161
  }
162
+
140
163
  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);
141
164
  argsArray.splice(iFirstSave, count * 4, [{
142
165
  width: imgWidth,
@@ -150,13 +173,17 @@ var QueueOptimizer = function QueueOptimizerClosure() {
150
173
  var fnArray = context.fnArray;
151
174
  var iFirstSave = context.iCurr - 3;
152
175
  var pos = (i - iFirstSave) % 4;
176
+
153
177
  switch (pos) {
154
178
  case 0:
155
179
  return fnArray[i] === _util.OPS.save;
180
+
156
181
  case 1:
157
182
  return fnArray[i] === _util.OPS.transform;
183
+
158
184
  case 2:
159
185
  return fnArray[i] === _util.OPS.paintImageMaskXObject;
186
+
160
187
  case 3:
161
188
  return fnArray[i] === _util.OPS.restore;
162
189
  }
@@ -172,45 +199,55 @@ var QueueOptimizer = function QueueOptimizerClosure() {
172
199
  var iFirstPIMXO = curr - 1;
173
200
  var count = Math.floor((i - iFirstSave) / 4);
174
201
  count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);
202
+
175
203
  if (count < MIN_IMAGES_IN_MASKS_BLOCK) {
176
204
  return i - (i - iFirstSave) % 4;
177
205
  }
206
+
178
207
  var q;
179
208
  var isSameImage = false;
180
209
  var iTransform, transformArgs;
181
210
  var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];
211
+
182
212
  if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {
183
213
  isSameImage = true;
184
214
  var firstTransformArg0 = argsArray[iFirstTransform][0];
185
215
  var firstTransformArg3 = argsArray[iFirstTransform][3];
186
216
  iTransform = iFirstTransform + 4;
187
217
  var iPIMXO = iFirstPIMXO + 4;
218
+
188
219
  for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {
189
220
  transformArgs = argsArray[iTransform];
221
+
190
222
  if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {
191
223
  if (q < MIN_IMAGES_IN_MASKS_BLOCK) {
192
224
  isSameImage = false;
193
225
  } else {
194
226
  count = q;
195
227
  }
228
+
196
229
  break;
197
230
  }
198
231
  }
199
232
  }
233
+
200
234
  if (isSameImage) {
201
235
  count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);
202
236
  var positions = new Float32Array(count * 2);
203
237
  iTransform = iFirstTransform;
238
+
204
239
  for (q = 0; q < count; q++, iTransform += 4) {
205
240
  transformArgs = argsArray[iTransform];
206
241
  positions[q << 1] = transformArgs[4];
207
242
  positions[(q << 1) + 1] = transformArgs[5];
208
243
  }
244
+
209
245
  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);
210
246
  argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);
211
247
  } else {
212
248
  count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);
213
249
  var images = [];
250
+
214
251
  for (q = 0; q < count; q++) {
215
252
  transformArgs = argsArray[iFirstTransform + (q << 2)];
216
253
  var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];
@@ -221,9 +258,11 @@ var QueueOptimizer = function QueueOptimizerClosure() {
221
258
  transform: transformArgs
222
259
  });
223
260
  }
261
+
224
262
  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);
225
263
  argsArray.splice(iFirstSave, count * 4, [images]);
226
264
  }
265
+
227
266
  return iFirstSave + 1;
228
267
  });
229
268
  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {
@@ -235,30 +274,40 @@ var QueueOptimizer = function QueueOptimizerClosure() {
235
274
  argsArray = context.argsArray;
236
275
  var iFirstSave = context.iCurr - 3;
237
276
  var pos = (i - iFirstSave) % 4;
277
+
238
278
  switch (pos) {
239
279
  case 0:
240
280
  return fnArray[i] === _util.OPS.save;
281
+
241
282
  case 1:
242
283
  if (fnArray[i] !== _util.OPS.transform) {
243
284
  return false;
244
285
  }
286
+
245
287
  var iFirstTransform = context.iCurr - 2;
246
288
  var firstTransformArg0 = argsArray[iFirstTransform][0];
247
289
  var firstTransformArg3 = argsArray[iFirstTransform][3];
290
+
248
291
  if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {
249
292
  return false;
250
293
  }
294
+
251
295
  return true;
296
+
252
297
  case 2:
253
298
  if (fnArray[i] !== _util.OPS.paintImageXObject) {
254
299
  return false;
255
300
  }
301
+
256
302
  var iFirstPIXO = context.iCurr - 1;
257
303
  var firstPIXOArg0 = argsArray[iFirstPIXO][0];
304
+
258
305
  if (argsArray[i][0] !== firstPIXOArg0) {
259
306
  return false;
260
307
  }
308
+
261
309
  return true;
310
+
262
311
  case 3:
263
312
  return fnArray[i] === _util.OPS.restore;
264
313
  }
@@ -275,16 +324,20 @@ var QueueOptimizer = function QueueOptimizerClosure() {
275
324
  var firstTransformArg0 = argsArray[iFirstTransform][0];
276
325
  var firstTransformArg3 = argsArray[iFirstTransform][3];
277
326
  var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);
327
+
278
328
  if (count < MIN_IMAGES_IN_BLOCK) {
279
329
  return i - (i - iFirstSave) % 4;
280
330
  }
331
+
281
332
  var positions = new Float32Array(count * 2);
282
333
  var iTransform = iFirstTransform;
334
+
283
335
  for (var q = 0; q < count; q++, iTransform += 4) {
284
336
  var transformArgs = argsArray[iTransform];
285
337
  positions[q << 1] = transformArgs[4];
286
338
  positions[(q << 1) + 1] = transformArgs[5];
287
339
  }
340
+
288
341
  var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];
289
342
  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);
290
343
  argsArray.splice(iFirstSave, count * 4, args);
@@ -295,24 +348,32 @@ var QueueOptimizer = function QueueOptimizerClosure() {
295
348
  argsArray = context.argsArray;
296
349
  var iFirstSave = context.iCurr - 4;
297
350
  var pos = (i - iFirstSave) % 5;
351
+
298
352
  switch (pos) {
299
353
  case 0:
300
354
  return fnArray[i] === _util.OPS.beginText;
355
+
301
356
  case 1:
302
357
  return fnArray[i] === _util.OPS.setFont;
358
+
303
359
  case 2:
304
360
  return fnArray[i] === _util.OPS.setTextMatrix;
361
+
305
362
  case 3:
306
363
  if (fnArray[i] !== _util.OPS.showText) {
307
364
  return false;
308
365
  }
366
+
309
367
  var iFirstSetFont = context.iCurr - 3;
310
368
  var firstSetFontArg0 = argsArray[iFirstSetFont][0];
311
369
  var firstSetFontArg1 = argsArray[iFirstSetFont][1];
370
+
312
371
  if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {
313
372
  return false;
314
373
  }
374
+
315
375
  return true;
376
+
316
377
  case 4:
317
378
  return fnArray[i] === _util.OPS.endText;
318
379
  }
@@ -330,22 +391,29 @@ var QueueOptimizer = function QueueOptimizerClosure() {
330
391
  var firstSetFontArg0 = argsArray[iFirstSetFont][0];
331
392
  var firstSetFontArg1 = argsArray[iFirstSetFont][1];
332
393
  var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);
394
+
333
395
  if (count < MIN_CHARS_IN_BLOCK) {
334
396
  return i - (i - iFirstBeginText) % 5;
335
397
  }
398
+
336
399
  var iFirst = iFirstBeginText;
400
+
337
401
  if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {
338
402
  count++;
339
403
  iFirst -= 5;
340
404
  }
405
+
341
406
  var iEndText = iFirst + 4;
407
+
342
408
  for (var q = 1; q < count; q++) {
343
409
  fnArray.splice(iEndText, 3);
344
410
  argsArray.splice(iEndText, 3);
345
411
  iEndText += 2;
346
412
  }
413
+
347
414
  return iEndText + 1;
348
415
  });
416
+
349
417
  function QueueOptimizer(queue) {
350
418
  this.queue = queue;
351
419
  this.state = null;
@@ -357,6 +425,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
357
425
  this.match = null;
358
426
  this.lastProcessed = 0;
359
427
  }
428
+
360
429
  QueueOptimizer.prototype = {
361
430
  _optimize: function _optimize() {
362
431
  var fnArray = this.queue.fnArray;
@@ -364,40 +433,52 @@ var QueueOptimizer = function QueueOptimizerClosure() {
364
433
  ii = fnArray.length;
365
434
  var state = this.state;
366
435
  var match = this.match;
436
+
367
437
  if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {
368
438
  this.lastProcessed = ii;
369
439
  return;
370
440
  }
441
+
371
442
  var context = this.context;
443
+
372
444
  while (i < ii) {
373
445
  if (match) {
374
446
  var iterate = (0, match.iterateFn)(context, i);
447
+
375
448
  if (iterate) {
376
449
  i++;
377
450
  continue;
378
451
  }
452
+
379
453
  i = (0, match.processFn)(context, i + 1);
380
454
  ii = fnArray.length;
381
455
  match = null;
382
456
  state = null;
457
+
383
458
  if (i >= ii) {
384
459
  break;
385
460
  }
386
461
  }
462
+
387
463
  state = (state || InitialState)[fnArray[i]];
464
+
388
465
  if (!state || Array.isArray(state)) {
389
466
  i++;
390
467
  continue;
391
468
  }
469
+
392
470
  context.iCurr = i;
393
471
  i++;
472
+
394
473
  if (state.checkFn && !(0, state.checkFn)(context)) {
395
474
  state = null;
396
475
  continue;
397
476
  }
477
+
398
478
  match = state;
399
479
  state = null;
400
480
  }
481
+
401
482
  this.state = state;
402
483
  this.match = match;
403
484
  this.lastProcessed = i;
@@ -405,6 +486,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
405
486
  push: function push(fn, args) {
406
487
  this.queue.fnArray.push(fn);
407
488
  this.queue.argsArray.push(args);
489
+
408
490
  this._optimize();
409
491
  },
410
492
  flush: function flush() {
@@ -413,6 +495,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
413
495
  this.lastProcessed = (0, this.match.processFn)(this.context, length);
414
496
  this.match = null;
415
497
  this.state = null;
498
+
416
499
  this._optimize();
417
500
  }
418
501
  },
@@ -424,10 +507,12 @@ var QueueOptimizer = function QueueOptimizerClosure() {
424
507
  };
425
508
  return QueueOptimizer;
426
509
  }();
510
+
427
511
  var NullOptimizer = function NullOptimizerClosure() {
428
512
  function NullOptimizer(queue) {
429
513
  this.queue = queue;
430
514
  }
515
+
431
516
  NullOptimizer.prototype = {
432
517
  push: function push(fn, args) {
433
518
  this.queue.fnArray.push(fn);
@@ -437,13 +522,16 @@ var NullOptimizer = function NullOptimizerClosure() {
437
522
  };
438
523
  return NullOptimizer;
439
524
  }();
525
+
440
526
  var OperatorList = function OperatorListClosure() {
441
527
  var CHUNK_SIZE = 1000;
442
528
  var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;
529
+
443
530
  function getTransfers(queue) {
444
531
  var transfers = [];
445
532
  var fnArray = queue.fnArray,
446
533
  argsArray = queue.argsArray;
534
+
447
535
  for (var i = 0, ii = queue.length; i < ii; i++) {
448
536
  switch (fnArray[i]) {
449
537
  case _util.OPS.paintInlineImageXObject:
@@ -451,39 +539,49 @@ var OperatorList = function OperatorListClosure() {
451
539
  case _util.OPS.paintImageMaskXObject:
452
540
  var arg = argsArray[i][0];
453
541
  ;
542
+
454
543
  if (!arg.cached) {
455
544
  transfers.push(arg.data.buffer);
456
545
  }
546
+
457
547
  break;
458
548
  }
459
549
  }
550
+
460
551
  return transfers;
461
552
  }
553
+
462
554
  function OperatorList(intent, messageHandler, pageIndex) {
463
555
  this.messageHandler = messageHandler;
464
556
  this.fnArray = [];
465
557
  this.argsArray = [];
558
+
466
559
  if (messageHandler && this.intent !== 'oplist') {
467
560
  this.optimizer = new QueueOptimizer(this);
468
561
  } else {
469
562
  this.optimizer = new NullOptimizer(this);
470
563
  }
564
+
471
565
  this.dependencies = Object.create(null);
472
566
  this._totalLength = 0;
473
567
  this.pageIndex = pageIndex;
474
568
  this.intent = intent;
475
569
  this.weight = 0;
476
570
  }
571
+
477
572
  OperatorList.prototype = {
478
573
  get length() {
479
574
  return this.argsArray.length;
480
575
  },
576
+
481
577
  get totalLength() {
482
578
  return this._totalLength + this.length;
483
579
  },
580
+
484
581
  addOp: function addOp(fn, args) {
485
582
  this.optimizer.push(fn, args);
486
583
  this.weight++;
584
+
487
585
  if (this.messageHandler) {
488
586
  if (this.weight >= CHUNK_SIZE) {
489
587
  this.flush();
@@ -496,6 +594,7 @@ var OperatorList = function OperatorListClosure() {
496
594
  if (dependency in this.dependencies) {
497
595
  return;
498
596
  }
597
+
499
598
  this.dependencies[dependency] = true;
500
599
  this.addOp(_util.OPS.dependency, [dependency]);
501
600
  },
@@ -506,6 +605,7 @@ var OperatorList = function OperatorListClosure() {
506
605
  },
507
606
  addOpList: function addOpList(opList) {
508
607
  Object.assign(this.dependencies, opList.dependencies);
608
+
509
609
  for (var i = 0, ii = opList.length; i < ii; i++) {
510
610
  this.addOp(opList.fnArray[i], opList.argsArray[i]);
511
611
  }
@@ -541,4 +641,5 @@ var OperatorList = function OperatorListClosure() {
541
641
  };
542
642
  return OperatorList;
543
643
  }();
644
+
544
645
  exports.OperatorList = OperatorList;