pdfjs-dist 2.1.266 → 2.5.207

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 (191) 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 +8382 -18492
  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 +20417 -29816
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25688 -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 +58239 -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 +403 -0
  29. package/es5/web/pdf_viewer.js +7742 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +1475 -4897
  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 +750 -899
  36. package/lib/core/arithmetic_decoder.js +81 -97
  37. package/lib/core/bidi.js +54 -46
  38. package/lib/core/ccitt.js +88 -81
  39. package/lib/core/ccitt_stream.js +15 -14
  40. package/lib/core/cff_parser.js +235 -183
  41. package/lib/core/charsets.js +4 -4
  42. package/lib/core/chunked_stream.js +447 -542
  43. package/lib/core/cmap.js +222 -264
  44. package/lib/core/colorspace.js +699 -863
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +379 -437
  47. package/lib/core/document.js +573 -660
  48. package/lib/core/encodings.js +15 -15
  49. package/lib/core/evaluator.js +1103 -868
  50. package/lib/core/font_renderer.js +135 -178
  51. package/lib/core/fonts.js +570 -491
  52. package/lib/core/function.js +291 -288
  53. package/lib/core/glyphlist.js +4527 -4526
  54. package/lib/core/image.js +145 -149
  55. package/lib/core/image_utils.js +170 -0
  56. package/lib/core/jbig2.js +325 -316
  57. package/lib/core/jbig2_stream.js +18 -17
  58. package/lib/core/jpeg_stream.js +21 -26
  59. package/lib/core/jpg.js +284 -232
  60. package/lib/core/jpx.js +161 -143
  61. package/lib/core/jpx_stream.js +28 -28
  62. package/lib/core/metrics.js +2929 -2929
  63. package/lib/core/murmurhash3.js +90 -101
  64. package/lib/core/obj.js +1183 -1157
  65. package/lib/core/operator_list.js +99 -67
  66. package/lib/core/parser.js +972 -911
  67. package/lib/core/pattern.js +87 -70
  68. package/lib/core/pdf_manager.js +150 -315
  69. package/lib/core/primitives.js +83 -56
  70. package/lib/core/ps_parser.js +175 -214
  71. package/lib/core/standard_fonts.js +237 -236
  72. package/lib/core/stream.js +94 -74
  73. package/lib/core/type1_parser.js +87 -69
  74. package/lib/core/unicode.js +1654 -1654
  75. package/lib/core/worker.js +193 -390
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +741 -972
  78. package/lib/display/api.js +1500 -1791
  79. package/lib/display/api_compatibility.js +12 -17
  80. package/lib/display/canvas.js +165 -165
  81. package/lib/display/content_disposition.js +40 -59
  82. package/lib/display/display_utils.js +515 -0
  83. package/lib/display/fetch_stream.js +183 -298
  84. package/lib/display/font_loader.js +273 -413
  85. package/lib/display/metadata.js +86 -98
  86. package/lib/display/network.js +266 -359
  87. package/lib/display/network_utils.js +25 -18
  88. package/lib/display/node_stream.js +285 -458
  89. package/lib/display/pattern_helper.js +113 -65
  90. package/lib/display/svg.js +1166 -901
  91. package/lib/display/text_layer.js +156 -132
  92. package/lib/display/transport_stream.js +262 -278
  93. package/lib/display/webgl.js +70 -83
  94. package/lib/display/worker_options.js +3 -3
  95. package/lib/display/xml_parser.js +303 -392
  96. package/lib/examples/node/domstubs.js +40 -37
  97. package/lib/pdf.js +226 -59
  98. package/lib/pdf.worker.js +14 -6
  99. package/lib/shared/compatibility.js +3 -246
  100. package/lib/shared/is_node.js +7 -6
  101. package/lib/shared/message_handler.js +327 -332
  102. package/lib/shared/util.js +266 -416
  103. package/lib/test/unit/annotation_spec.js +1555 -701
  104. package/lib/test/unit/api_spec.js +802 -604
  105. package/lib/test/unit/bidi_spec.js +7 -7
  106. package/lib/test/unit/cff_parser_spec.js +84 -69
  107. package/lib/test/unit/clitests_helper.js +7 -9
  108. package/lib/test/unit/cmap_spec.js +74 -76
  109. package/lib/test/unit/colorspace_spec.js +166 -161
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +181 -181
  112. package/lib/test/unit/custom_spec.js +20 -22
  113. package/lib/test/unit/display_svg_spec.js +34 -39
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +16 -21
  116. package/lib/test/unit/encodings_spec.js +12 -34
  117. package/lib/test/unit/evaluator_spec.js +83 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +206 -204
  120. package/lib/test/unit/jasmine-boot.js +46 -30
  121. package/lib/test/unit/message_handler_spec.js +173 -159
  122. package/lib/test/unit/metadata_spec.js +69 -69
  123. package/lib/test/unit/murmurhash3_spec.js +12 -12
  124. package/lib/test/unit/network_spec.js +13 -61
  125. package/lib/test/unit/network_utils_spec.js +183 -119
  126. package/lib/test/unit/node_stream_spec.js +78 -92
  127. package/lib/test/unit/parser_spec.js +172 -114
  128. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  129. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  130. package/lib/test/unit/pdf_history_spec.js +32 -32
  131. package/lib/test/unit/primitives_spec.js +140 -125
  132. package/lib/test/unit/stream_spec.js +16 -14
  133. package/lib/test/unit/test_utils.js +131 -143
  134. package/lib/test/unit/testreporter.js +19 -19
  135. package/lib/test/unit/type1_parser_spec.js +42 -42
  136. package/lib/test/unit/ui_utils_spec.js +297 -459
  137. package/lib/test/unit/unicode_spec.js +38 -38
  138. package/lib/test/unit/util_spec.js +121 -305
  139. package/lib/web/annotation_layer_builder.js +66 -103
  140. package/lib/web/app.js +1328 -1214
  141. package/lib/web/app_options.js +105 -107
  142. package/lib/web/base_viewer.js +824 -838
  143. package/lib/web/chromecom.js +165 -252
  144. package/lib/web/debugger.js +149 -205
  145. package/lib/web/download_manager.js +39 -55
  146. package/lib/web/firefox_print_service.js +37 -27
  147. package/lib/web/firefoxcom.js +212 -363
  148. package/lib/web/genericcom.js +26 -108
  149. package/lib/web/genericl10n.js +24 -153
  150. package/lib/web/grab_to_pan.js +32 -30
  151. package/lib/web/interfaces.js +80 -254
  152. package/lib/web/overlay_manager.js +70 -246
  153. package/lib/web/password_prompt.js +38 -64
  154. package/lib/web/pdf_attachment_viewer.js +113 -131
  155. package/lib/web/pdf_cursor_tools.js +75 -102
  156. package/lib/web/pdf_document_properties.js +221 -306
  157. package/lib/web/pdf_find_bar.js +136 -170
  158. package/lib/web/pdf_find_controller.js +491 -548
  159. package/lib/web/pdf_find_utils.js +13 -13
  160. package/lib/web/pdf_history.js +397 -406
  161. package/lib/web/pdf_link_service.js +304 -348
  162. package/lib/web/pdf_outline_viewer.js +140 -175
  163. package/lib/web/pdf_page_view.js +452 -523
  164. package/lib/web/pdf_presentation_mode.js +308 -357
  165. package/lib/web/pdf_print_service.js +90 -104
  166. package/lib/web/pdf_rendering_queue.js +84 -108
  167. package/lib/web/pdf_sidebar.js +276 -306
  168. package/lib/web/pdf_sidebar_resizer.js +92 -119
  169. package/lib/web/pdf_single_page_viewer.js +77 -126
  170. package/lib/web/pdf_thumbnail_view.js +276 -297
  171. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  172. package/lib/web/pdf_viewer.component.js +20 -21
  173. package/lib/web/pdf_viewer.js +55 -115
  174. package/lib/web/preferences.js +82 -286
  175. package/lib/web/secondary_toolbar.js +164 -196
  176. package/lib/web/text_layer_builder.js +282 -339
  177. package/lib/web/toolbar.js +217 -210
  178. package/lib/web/ui_utils.js +267 -420
  179. package/lib/web/view_history.js +52 -226
  180. package/lib/web/viewer_compatibility.js +21 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +35 -25
  183. package/web/pdf_viewer.js +3489 -4855
  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 -494
  189. package/lib/shared/streams_polyfill.js +0 -43
  190. package/lib/shared/url_polyfill.js +0 -56
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
@@ -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.
@@ -21,116 +21,102 @@
21
21
  */
22
22
  "use strict";
23
23
 
24
- var _util = require("../../shared/util");
24
+ var _util = require("../../shared/util.js");
25
25
 
26
- var _is_node = _interopRequireDefault(require("../../shared/is_node"));
26
+ var _is_node = require("../../shared/is_node.js");
27
27
 
28
- var _node_stream = require("../../display/node_stream");
28
+ var _node_stream = require("../../display/node_stream.js");
29
29
 
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
+ if (!_is_node.isNodeJS) {
31
+ throw new Error('The "node_stream" unit-tests can only be run in Node.js environments.');
32
+ }
31
33
 
32
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
34
+ const path = require("path");
33
35
 
34
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
36
+ const url = require("url");
35
37
 
36
- 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; }
38
+ const http = require("http");
37
39
 
38
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
40
+ const fs = require("fs");
39
41
 
40
- (0, _util.assert)((0, _is_node.default)());
41
-
42
- var path = require('path');
43
-
44
- var url = require('url');
45
-
46
- var http = require('http');
47
-
48
- var fs = require('fs');
49
-
50
- describe('node_stream', function () {
51
- var server = null;
52
- var port = null;
53
- var pdf = url.parse(encodeURI('file://' + path.join(process.cwd(), './test/pdfs/tracemonkey.pdf'))).href;
54
- var pdfLength = 1016315;
55
- beforeAll(function (done) {
56
- server = http.createServer(function (request, response) {
57
- var filePath = process.cwd() + '/test/pdfs' + request.url;
58
- fs.lstat(filePath, function (error, stat) {
42
+ describe("node_stream", function () {
43
+ let server = null;
44
+ let port = null;
45
+ const pdf = url.parse(encodeURI("file://" + path.join(process.cwd(), "./test/pdfs/tracemonkey.pdf"))).href;
46
+ const pdfLength = 1016315;
47
+ beforeAll(done => {
48
+ server = http.createServer((request, response) => {
49
+ const filePath = process.cwd() + "/test/pdfs" + request.url;
50
+ fs.lstat(filePath, (error, stat) => {
59
51
  if (error) {
60
52
  response.writeHead(404);
61
- response.end("File ".concat(request.url, " not found!"));
53
+ response.end(`File ${request.url} not found!`);
62
54
  return;
63
55
  }
64
56
 
65
- if (!request.headers['range']) {
66
- var contentLength = stat.size;
67
- var stream = fs.createReadStream(filePath);
57
+ if (!request.headers.range) {
58
+ const contentLength = stat.size;
59
+ const stream = fs.createReadStream(filePath);
68
60
  response.writeHead(200, {
69
- 'Content-Type': 'application/pdf',
70
- 'Content-Length': contentLength,
71
- 'Accept-Ranges': 'bytes'
61
+ "Content-Type": "application/pdf",
62
+ "Content-Length": contentLength,
63
+ "Accept-Ranges": "bytes"
72
64
  });
73
65
  stream.pipe(response);
74
66
  } else {
75
- var _request$headers$rang = request.headers['range'].split('=')[1].split('-').map(function (x) {
67
+ const [start, end] = request.headers.range.split("=")[1].split("-").map(x => {
76
68
  return Number(x);
77
- }),
78
- _request$headers$rang2 = _slicedToArray(_request$headers$rang, 2),
79
- start = _request$headers$rang2[0],
80
- end = _request$headers$rang2[1];
81
-
82
- var _stream = fs.createReadStream(filePath, {
83
- start: start,
84
- end: end
85
69
  });
86
-
70
+ const stream = fs.createReadStream(filePath, {
71
+ start,
72
+ end
73
+ });
87
74
  response.writeHead(206, {
88
- 'Content-Type': 'application/pdf'
75
+ "Content-Type": "application/pdf"
89
76
  });
90
-
91
- _stream.pipe(response);
77
+ stream.pipe(response);
92
78
  }
93
79
  });
94
80
  }).listen(0);
95
81
  port = server.address().port;
96
82
  done();
97
83
  });
98
- afterAll(function (done) {
84
+ afterAll(done => {
99
85
  server.close();
100
86
  done();
101
87
  });
102
- it('read both http(s) and filesystem pdf files', function (done) {
103
- var stream1 = new _node_stream.PDFNodeStream({
104
- url: "http://127.0.0.1:".concat(port, "/tracemonkey.pdf"),
88
+ it("read both http(s) and filesystem pdf files", function (done) {
89
+ const stream1 = new _node_stream.PDFNodeStream({
90
+ url: `http://127.0.0.1:${port}/tracemonkey.pdf`,
105
91
  rangeChunkSize: 65536,
106
92
  disableStream: true,
107
93
  disableRange: true
108
94
  });
109
- var stream2 = new _node_stream.PDFNodeStream({
95
+ const stream2 = new _node_stream.PDFNodeStream({
110
96
  url: pdf,
111
97
  rangeChunkSize: 65536,
112
98
  disableStream: true,
113
99
  disableRange: true
114
100
  });
115
- var fullReader1 = stream1.getFullReader();
116
- var fullReader2 = stream2.getFullReader();
117
- var isStreamingSupported1, isRangeSupported1;
118
- var promise1 = fullReader1.headersReady.then(function () {
101
+ const fullReader1 = stream1.getFullReader();
102
+ const fullReader2 = stream2.getFullReader();
103
+ let isStreamingSupported1, isRangeSupported1;
104
+ const promise1 = fullReader1.headersReady.then(() => {
119
105
  isStreamingSupported1 = fullReader1.isStreamingSupported;
120
106
  isRangeSupported1 = fullReader1.isRangeSupported;
121
107
  });
122
- var isStreamingSupported2, isRangeSupported2;
123
- var promise2 = fullReader2.headersReady.then(function () {
108
+ let isStreamingSupported2, isRangeSupported2;
109
+ const promise2 = fullReader2.headersReady.then(() => {
124
110
  isStreamingSupported2 = fullReader2.isStreamingSupported;
125
111
  isRangeSupported2 = fullReader2.isRangeSupported;
126
112
  });
127
- var len1 = 0,
113
+ let len1 = 0,
128
114
  len2 = 0;
129
115
 
130
- var read1 = function read1() {
116
+ const read1 = function () {
131
117
  return fullReader1.read().then(function (result) {
132
118
  if (result.done) {
133
- return;
119
+ return undefined;
134
120
  }
135
121
 
136
122
  len1 += result.value.byteLength;
@@ -138,10 +124,10 @@ describe('node_stream', function () {
138
124
  });
139
125
  };
140
126
 
141
- var read2 = function read2() {
127
+ const read2 = function () {
142
128
  return fullReader2.read().then(function (result) {
143
129
  if (result.done) {
144
- return;
130
+ return undefined;
145
131
  }
146
132
 
147
133
  len2 += result.value.byteLength;
@@ -149,8 +135,8 @@ describe('node_stream', function () {
149
135
  });
150
136
  };
151
137
 
152
- var readPromise = Promise.all([read1(), read2(), promise1, promise2]);
153
- readPromise.then(function (result) {
138
+ const readPromise = Promise.all([read1(), read2(), promise1, promise2]);
139
+ readPromise.then(result => {
154
140
  expect(isStreamingSupported1).toEqual(false);
155
141
  expect(isRangeSupported1).toEqual(false);
156
142
  expect(isStreamingSupported2).toEqual(false);
@@ -158,64 +144,64 @@ describe('node_stream', function () {
158
144
  expect(len1).toEqual(pdfLength);
159
145
  expect(len1).toEqual(len2);
160
146
  done();
161
- }).catch(function (reason) {
147
+ }).catch(reason => {
162
148
  done.fail(reason);
163
149
  });
164
150
  });
165
- it('read custom ranges for both http(s) and filesystem urls', function (done) {
166
- var rangeSize = 32768;
167
- var stream1 = new _node_stream.PDFNodeStream({
168
- url: "http://127.0.0.1:".concat(port, "/tracemonkey.pdf"),
151
+ it("read custom ranges for both http(s) and filesystem urls", function (done) {
152
+ const rangeSize = 32768;
153
+ const stream1 = new _node_stream.PDFNodeStream({
154
+ url: `http://127.0.0.1:${port}/tracemonkey.pdf`,
169
155
  length: pdfLength,
170
156
  rangeChunkSize: rangeSize,
171
157
  disableStream: true,
172
158
  disableRange: false
173
159
  });
174
- var stream2 = new _node_stream.PDFNodeStream({
160
+ const stream2 = new _node_stream.PDFNodeStream({
175
161
  url: pdf,
176
162
  length: pdfLength,
177
163
  rangeChunkSize: rangeSize,
178
164
  disableStream: true,
179
165
  disableRange: false
180
166
  });
181
- var fullReader1 = stream1.getFullReader();
182
- var fullReader2 = stream2.getFullReader();
183
- var isStreamingSupported1, isRangeSupported1, fullReaderCancelled1;
184
- var isStreamingSupported2, isRangeSupported2, fullReaderCancelled2;
185
- var promise1 = fullReader1.headersReady.then(function () {
167
+ const fullReader1 = stream1.getFullReader();
168
+ const fullReader2 = stream2.getFullReader();
169
+ let isStreamingSupported1, isRangeSupported1, fullReaderCancelled1;
170
+ let isStreamingSupported2, isRangeSupported2, fullReaderCancelled2;
171
+ const promise1 = fullReader1.headersReady.then(function () {
186
172
  isStreamingSupported1 = fullReader1.isStreamingSupported;
187
173
  isRangeSupported1 = fullReader1.isRangeSupported;
188
- fullReader1.cancel('Don\'t need full reader');
174
+ fullReader1.cancel(new _util.AbortException("Don't need fullReader1."));
189
175
  fullReaderCancelled1 = true;
190
176
  });
191
- var promise2 = fullReader2.headersReady.then(function () {
177
+ const promise2 = fullReader2.headersReady.then(function () {
192
178
  isStreamingSupported2 = fullReader2.isStreamingSupported;
193
179
  isRangeSupported2 = fullReader2.isRangeSupported;
194
- fullReader2.cancel('Don\'t need full reader');
180
+ fullReader2.cancel(new _util.AbortException("Don't need fullReader2."));
195
181
  fullReaderCancelled2 = true;
196
182
  });
197
- var tailSize = pdfLength % rangeSize || rangeSize;
198
- var range11Reader = stream1.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
199
- var range12Reader = stream1.getRangeReader(pdfLength - tailSize, pdfLength);
200
- var range21Reader = stream2.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
201
- var range22Reader = stream2.getRangeReader(pdfLength - tailSize, pdfLength);
202
- var result11 = {
183
+ const tailSize = pdfLength % rangeSize || rangeSize;
184
+ const range11Reader = stream1.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
185
+ const range12Reader = stream1.getRangeReader(pdfLength - tailSize, pdfLength);
186
+ const range21Reader = stream2.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
187
+ const range22Reader = stream2.getRangeReader(pdfLength - tailSize, pdfLength);
188
+ const result11 = {
203
189
  value: 0
204
190
  },
205
- result12 = {
191
+ result12 = {
206
192
  value: 0
207
193
  };
208
- var result21 = {
194
+ const result21 = {
209
195
  value: 0
210
196
  },
211
- result22 = {
197
+ result22 = {
212
198
  value: 0
213
199
  };
214
200
 
215
- var read = function read(reader, lenResult) {
201
+ const read = function (reader, lenResult) {
216
202
  return reader.read().then(function (result) {
217
203
  if (result.done) {
218
- return;
204
+ return undefined;
219
205
  }
220
206
 
221
207
  lenResult.value += result.value.byteLength;
@@ -223,7 +209,7 @@ describe('node_stream', function () {
223
209
  });
224
210
  };
225
211
 
226
- var readPromises = Promise.all([read(range11Reader, result11), read(range12Reader, result12), read(range21Reader, result21), read(range22Reader, result22), promise1, promise2]);
212
+ const readPromises = Promise.all([read(range11Reader, result11), read(range12Reader, result12), read(range21Reader, result21), read(range22Reader, result22), promise1, promise2]);
227
213
  readPromises.then(function () {
228
214
  expect(result11.value).toEqual(rangeSize);
229
215
  expect(result12.value).toEqual(tailSize);