pdfjs-dist 2.0.943 → 2.4.456

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 (192) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8286 -14230
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +57878 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
@@ -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 2018 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.
@@ -19,121 +19,122 @@
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
- var _slicedToArray = function () { function sliceIterator(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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
24
+ var _util = require("../../shared/util.js");
25
25
 
26
- var _util = require('../../shared/util');
26
+ var _is_node = require("../../shared/is_node.js");
27
27
 
28
- var _is_node = require('../../shared/is_node');
28
+ var _node_stream = require("../../display/node_stream.js");
29
29
 
30
- var _is_node2 = _interopRequireDefault(_is_node);
30
+ (0, _util.assert)(_is_node.isNodeJS);
31
31
 
32
- var _node_stream = require('../../display/node_stream');
32
+ const path = require("path");
33
33
 
34
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
+ const url = require("url");
35
35
 
36
- (0, _util.assert)((0, _is_node2.default)());
37
- var path = require('path');
38
- var url = require('url');
39
- var http = require('http');
40
- var fs = require('fs');
41
- describe('node_stream', function () {
42
- var server = null;
43
- var port = null;
44
- var pdf = url.parse(encodeURI('file://' + path.join(process.cwd(), './test/pdfs/tracemonkey.pdf'))).href;
45
- var pdfLength = 1016315;
46
- beforeAll(function (done) {
47
- server = http.createServer(function (request, response) {
48
- var filePath = process.cwd() + '/test/pdfs' + request.url;
49
- fs.lstat(filePath, function (error, stat) {
36
+ const http = require("http");
37
+
38
+ const fs = require("fs");
39
+
40
+ describe("node_stream", function () {
41
+ let server = null;
42
+ let port = null;
43
+ const pdf = url.parse(encodeURI("file://" + path.join(process.cwd(), "./test/pdfs/tracemonkey.pdf"))).href;
44
+ const pdfLength = 1016315;
45
+ beforeAll(done => {
46
+ server = http.createServer((request, response) => {
47
+ const filePath = process.cwd() + "/test/pdfs" + request.url;
48
+ fs.lstat(filePath, (error, stat) => {
50
49
  if (error) {
51
50
  response.writeHead(404);
52
- response.end('File ' + request.url + ' not found!');
51
+ response.end(`File ${request.url} not found!`);
53
52
  return;
54
53
  }
55
- if (!request.headers['range']) {
56
- var contentLength = stat.size;
57
- var stream = fs.createReadStream(filePath);
54
+
55
+ if (!request.headers["range"]) {
56
+ const contentLength = stat.size;
57
+ const stream = fs.createReadStream(filePath);
58
58
  response.writeHead(200, {
59
- 'Content-Type': 'application/pdf',
60
- 'Content-Length': contentLength,
61
- 'Accept-Ranges': 'bytes'
59
+ "Content-Type": "application/pdf",
60
+ "Content-Length": contentLength,
61
+ "Accept-Ranges": "bytes"
62
62
  });
63
63
  stream.pipe(response);
64
64
  } else {
65
- var _request$headers$rang = request.headers['range'].split('=')[1].split('-').map(function (x) {
65
+ const [start, end] = request.headers["range"].split("=")[1].split("-").map(x => {
66
66
  return Number(x);
67
- }),
68
- _request$headers$rang2 = _slicedToArray(_request$headers$rang, 2),
69
- start = _request$headers$rang2[0],
70
- end = _request$headers$rang2[1];
71
-
72
- var _stream = fs.createReadStream(filePath, {
73
- start: start,
74
- end: end
75
67
  });
76
- response.writeHead(206, { 'Content-Type': 'application/pdf' });
77
- _stream.pipe(response);
68
+ const stream = fs.createReadStream(filePath, {
69
+ start,
70
+ end
71
+ });
72
+ response.writeHead(206, {
73
+ "Content-Type": "application/pdf"
74
+ });
75
+ stream.pipe(response);
78
76
  }
79
77
  });
80
78
  }).listen(0);
81
79
  port = server.address().port;
82
80
  done();
83
81
  });
84
- afterAll(function (done) {
82
+ afterAll(done => {
85
83
  server.close();
86
84
  done();
87
85
  });
88
- it('read both http(s) and filesystem pdf files', function (done) {
89
- var stream1 = new _node_stream.PDFNodeStream({
90
- url: 'http://127.0.0.1:' + port + '/tracemonkey.pdf',
86
+ it("read both http(s) and filesystem pdf files", function (done) {
87
+ const stream1 = new _node_stream.PDFNodeStream({
88
+ url: `http://127.0.0.1:${port}/tracemonkey.pdf`,
91
89
  rangeChunkSize: 65536,
92
90
  disableStream: true,
93
91
  disableRange: true
94
92
  });
95
- var stream2 = new _node_stream.PDFNodeStream({
93
+ const stream2 = new _node_stream.PDFNodeStream({
96
94
  url: pdf,
97
95
  rangeChunkSize: 65536,
98
96
  disableStream: true,
99
97
  disableRange: true
100
98
  });
101
- var fullReader1 = stream1.getFullReader();
102
- var fullReader2 = stream2.getFullReader();
103
- var isStreamingSupported1 = void 0,
104
- isRangeSupported1 = void 0;
105
- var promise1 = fullReader1.headersReady.then(function () {
99
+ const fullReader1 = stream1.getFullReader();
100
+ const fullReader2 = stream2.getFullReader();
101
+ let isStreamingSupported1, isRangeSupported1;
102
+ const promise1 = fullReader1.headersReady.then(() => {
106
103
  isStreamingSupported1 = fullReader1.isStreamingSupported;
107
104
  isRangeSupported1 = fullReader1.isRangeSupported;
108
105
  });
109
- var isStreamingSupported2 = void 0,
110
- isRangeSupported2 = void 0;
111
- var promise2 = fullReader2.headersReady.then(function () {
106
+ let isStreamingSupported2, isRangeSupported2;
107
+ const promise2 = fullReader2.headersReady.then(() => {
112
108
  isStreamingSupported2 = fullReader2.isStreamingSupported;
113
109
  isRangeSupported2 = fullReader2.isRangeSupported;
114
110
  });
115
- var len1 = 0,
111
+ let len1 = 0,
116
112
  len2 = 0;
117
- var read1 = function read1() {
113
+
114
+ const read1 = function () {
118
115
  return fullReader1.read().then(function (result) {
119
116
  if (result.done) {
120
- return;
117
+ return undefined;
121
118
  }
119
+
122
120
  len1 += result.value.byteLength;
123
121
  return read1();
124
122
  });
125
123
  };
126
- var read2 = function read2() {
124
+
125
+ const read2 = function () {
127
126
  return fullReader2.read().then(function (result) {
128
127
  if (result.done) {
129
- return;
128
+ return undefined;
130
129
  }
130
+
131
131
  len2 += result.value.byteLength;
132
132
  return read2();
133
133
  });
134
134
  };
135
- var readPromise = Promise.all([read1(), read2(), promise1, promise2]);
136
- readPromise.then(function (result) {
135
+
136
+ const readPromise = Promise.all([read1(), read2(), promise1, promise2]);
137
+ readPromise.then(result => {
137
138
  expect(isStreamingSupported1).toEqual(false);
138
139
  expect(isRangeSupported1).toEqual(false);
139
140
  expect(isStreamingSupported2).toEqual(false);
@@ -141,65 +142,72 @@ describe('node_stream', function () {
141
142
  expect(len1).toEqual(pdfLength);
142
143
  expect(len1).toEqual(len2);
143
144
  done();
144
- }).catch(function (reason) {
145
+ }).catch(reason => {
145
146
  done.fail(reason);
146
147
  });
147
148
  });
148
- it('read custom ranges for both http(s) and filesystem urls', function (done) {
149
- var rangeSize = 32768;
150
- var stream1 = new _node_stream.PDFNodeStream({
151
- url: 'http://127.0.0.1:' + port + '/tracemonkey.pdf',
149
+ it("read custom ranges for both http(s) and filesystem urls", function (done) {
150
+ const rangeSize = 32768;
151
+ const stream1 = new _node_stream.PDFNodeStream({
152
+ url: `http://127.0.0.1:${port}/tracemonkey.pdf`,
152
153
  length: pdfLength,
153
154
  rangeChunkSize: rangeSize,
154
155
  disableStream: true,
155
156
  disableRange: false
156
157
  });
157
- var stream2 = new _node_stream.PDFNodeStream({
158
+ const stream2 = new _node_stream.PDFNodeStream({
158
159
  url: pdf,
159
160
  length: pdfLength,
160
161
  rangeChunkSize: rangeSize,
161
162
  disableStream: true,
162
163
  disableRange: false
163
164
  });
164
- var fullReader1 = stream1.getFullReader();
165
- var fullReader2 = stream2.getFullReader();
166
- var isStreamingSupported1 = void 0,
167
- isRangeSupported1 = void 0,
168
- fullReaderCancelled1 = void 0;
169
- var isStreamingSupported2 = void 0,
170
- isRangeSupported2 = void 0,
171
- fullReaderCancelled2 = void 0;
172
- var promise1 = fullReader1.headersReady.then(function () {
165
+ const fullReader1 = stream1.getFullReader();
166
+ const fullReader2 = stream2.getFullReader();
167
+ let isStreamingSupported1, isRangeSupported1, fullReaderCancelled1;
168
+ let isStreamingSupported2, isRangeSupported2, fullReaderCancelled2;
169
+ const promise1 = fullReader1.headersReady.then(function () {
173
170
  isStreamingSupported1 = fullReader1.isStreamingSupported;
174
171
  isRangeSupported1 = fullReader1.isRangeSupported;
175
- fullReader1.cancel('Don\'t need full reader');
172
+ fullReader1.cancel(new _util.AbortException("Don't need fullReader1."));
176
173
  fullReaderCancelled1 = true;
177
174
  });
178
- var promise2 = fullReader2.headersReady.then(function () {
175
+ const promise2 = fullReader2.headersReady.then(function () {
179
176
  isStreamingSupported2 = fullReader2.isStreamingSupported;
180
177
  isRangeSupported2 = fullReader2.isRangeSupported;
181
- fullReader2.cancel('Don\'t need full reader');
178
+ fullReader2.cancel(new _util.AbortException("Don't need fullReader2."));
182
179
  fullReaderCancelled2 = true;
183
180
  });
184
- var tailSize = pdfLength % rangeSize || rangeSize;
185
- var range11Reader = stream1.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
186
- var range12Reader = stream1.getRangeReader(pdfLength - tailSize, pdfLength);
187
- var range21Reader = stream2.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
188
- var range22Reader = stream2.getRangeReader(pdfLength - tailSize, pdfLength);
189
- var result11 = { value: 0 },
190
- result12 = { value: 0 };
191
- var result21 = { value: 0 },
192
- result22 = { value: 0 };
193
- var read = function read(reader, lenResult) {
181
+ const tailSize = pdfLength % rangeSize || rangeSize;
182
+ const range11Reader = stream1.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
183
+ const range12Reader = stream1.getRangeReader(pdfLength - tailSize, pdfLength);
184
+ const range21Reader = stream2.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
185
+ const range22Reader = stream2.getRangeReader(pdfLength - tailSize, pdfLength);
186
+ const result11 = {
187
+ value: 0
188
+ },
189
+ result12 = {
190
+ value: 0
191
+ };
192
+ const result21 = {
193
+ value: 0
194
+ },
195
+ result22 = {
196
+ value: 0
197
+ };
198
+
199
+ const read = function (reader, lenResult) {
194
200
  return reader.read().then(function (result) {
195
201
  if (result.done) {
196
- return;
202
+ return undefined;
197
203
  }
204
+
198
205
  lenResult.value += result.value.byteLength;
199
206
  return read(reader, lenResult);
200
207
  });
201
208
  };
202
- var readPromises = Promise.all([read(range11Reader, result11), read(range12Reader, result12), read(range21Reader, result21), read(range22Reader, result22), promise1, promise2]);
209
+
210
+ const readPromises = Promise.all([read(range11Reader, result11), read(range12Reader, result12), read(range21Reader, result21), read(range22Reader, result22), promise1, promise2]);
203
211
  readPromises.then(function () {
204
212
  expect(result11.value).toEqual(rangeSize);
205
213
  expect(result12.value).toEqual(tailSize);