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.
@@ -24,332 +24,346 @@
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- var ArithmeticDecoder = function ArithmeticDecoderClosure() {
28
- var QeTable = [{
29
- qe: 0x5601,
30
- nmps: 1,
31
- nlps: 1,
32
- switchFlag: 1
33
- }, {
34
- qe: 0x3401,
35
- nmps: 2,
36
- nlps: 6,
37
- switchFlag: 0
38
- }, {
39
- qe: 0x1801,
40
- nmps: 3,
41
- nlps: 9,
42
- switchFlag: 0
43
- }, {
44
- qe: 0x0AC1,
45
- nmps: 4,
46
- nlps: 12,
47
- switchFlag: 0
48
- }, {
49
- qe: 0x0521,
50
- nmps: 5,
51
- nlps: 29,
52
- switchFlag: 0
53
- }, {
54
- qe: 0x0221,
55
- nmps: 38,
56
- nlps: 33,
57
- switchFlag: 0
58
- }, {
59
- qe: 0x5601,
60
- nmps: 7,
61
- nlps: 6,
62
- switchFlag: 1
63
- }, {
64
- qe: 0x5401,
65
- nmps: 8,
66
- nlps: 14,
67
- switchFlag: 0
68
- }, {
69
- qe: 0x4801,
70
- nmps: 9,
71
- nlps: 14,
72
- switchFlag: 0
73
- }, {
74
- qe: 0x3801,
75
- nmps: 10,
76
- nlps: 14,
77
- switchFlag: 0
78
- }, {
79
- qe: 0x3001,
80
- nmps: 11,
81
- nlps: 17,
82
- switchFlag: 0
83
- }, {
84
- qe: 0x2401,
85
- nmps: 12,
86
- nlps: 18,
87
- switchFlag: 0
88
- }, {
89
- qe: 0x1C01,
90
- nmps: 13,
91
- nlps: 20,
92
- switchFlag: 0
93
- }, {
94
- qe: 0x1601,
95
- nmps: 29,
96
- nlps: 21,
97
- switchFlag: 0
98
- }, {
99
- qe: 0x5601,
100
- nmps: 15,
101
- nlps: 14,
102
- switchFlag: 1
103
- }, {
104
- qe: 0x5401,
105
- nmps: 16,
106
- nlps: 14,
107
- switchFlag: 0
108
- }, {
109
- qe: 0x5101,
110
- nmps: 17,
111
- nlps: 15,
112
- switchFlag: 0
113
- }, {
114
- qe: 0x4801,
115
- nmps: 18,
116
- nlps: 16,
117
- switchFlag: 0
118
- }, {
119
- qe: 0x3801,
120
- nmps: 19,
121
- nlps: 17,
122
- switchFlag: 0
123
- }, {
124
- qe: 0x3401,
125
- nmps: 20,
126
- nlps: 18,
127
- switchFlag: 0
128
- }, {
129
- qe: 0x3001,
130
- nmps: 21,
131
- nlps: 19,
132
- switchFlag: 0
133
- }, {
134
- qe: 0x2801,
135
- nmps: 22,
136
- nlps: 19,
137
- switchFlag: 0
138
- }, {
139
- qe: 0x2401,
140
- nmps: 23,
141
- nlps: 20,
142
- switchFlag: 0
143
- }, {
144
- qe: 0x2201,
145
- nmps: 24,
146
- nlps: 21,
147
- switchFlag: 0
148
- }, {
149
- qe: 0x1C01,
150
- nmps: 25,
151
- nlps: 22,
152
- switchFlag: 0
153
- }, {
154
- qe: 0x1801,
155
- nmps: 26,
156
- nlps: 23,
157
- switchFlag: 0
158
- }, {
159
- qe: 0x1601,
160
- nmps: 27,
161
- nlps: 24,
162
- switchFlag: 0
163
- }, {
164
- qe: 0x1401,
165
- nmps: 28,
166
- nlps: 25,
167
- switchFlag: 0
168
- }, {
169
- qe: 0x1201,
170
- nmps: 29,
171
- nlps: 26,
172
- switchFlag: 0
173
- }, {
174
- qe: 0x1101,
175
- nmps: 30,
176
- nlps: 27,
177
- switchFlag: 0
178
- }, {
179
- qe: 0x0AC1,
180
- nmps: 31,
181
- nlps: 28,
182
- switchFlag: 0
183
- }, {
184
- qe: 0x09C1,
185
- nmps: 32,
186
- nlps: 29,
187
- switchFlag: 0
188
- }, {
189
- qe: 0x08A1,
190
- nmps: 33,
191
- nlps: 30,
192
- switchFlag: 0
193
- }, {
194
- qe: 0x0521,
195
- nmps: 34,
196
- nlps: 31,
197
- switchFlag: 0
198
- }, {
199
- qe: 0x0441,
200
- nmps: 35,
201
- nlps: 32,
202
- switchFlag: 0
203
- }, {
204
- qe: 0x02A1,
205
- nmps: 36,
206
- nlps: 33,
207
- switchFlag: 0
208
- }, {
209
- qe: 0x0221,
210
- nmps: 37,
211
- nlps: 34,
212
- switchFlag: 0
213
- }, {
214
- qe: 0x0141,
215
- nmps: 38,
216
- nlps: 35,
217
- switchFlag: 0
218
- }, {
219
- qe: 0x0111,
220
- nmps: 39,
221
- nlps: 36,
222
- switchFlag: 0
223
- }, {
224
- qe: 0x0085,
225
- nmps: 40,
226
- nlps: 37,
227
- switchFlag: 0
228
- }, {
229
- qe: 0x0049,
230
- nmps: 41,
231
- nlps: 38,
232
- switchFlag: 0
233
- }, {
234
- qe: 0x0025,
235
- nmps: 42,
236
- nlps: 39,
237
- switchFlag: 0
238
- }, {
239
- qe: 0x0015,
240
- nmps: 43,
241
- nlps: 40,
242
- switchFlag: 0
243
- }, {
244
- qe: 0x0009,
245
- nmps: 44,
246
- nlps: 41,
247
- switchFlag: 0
248
- }, {
249
- qe: 0x0005,
250
- nmps: 45,
251
- nlps: 42,
252
- switchFlag: 0
253
- }, {
254
- qe: 0x0001,
255
- nmps: 45,
256
- nlps: 43,
257
- switchFlag: 0
258
- }, {
259
- qe: 0x5601,
260
- nmps: 46,
261
- nlps: 46,
262
- switchFlag: 0
263
- }];
264
- function ArithmeticDecoder(data, start, end) {
27
+ exports.ArithmeticDecoder = void 0;
28
+ const QeTable = [{
29
+ qe: 0x5601,
30
+ nmps: 1,
31
+ nlps: 1,
32
+ switchFlag: 1
33
+ }, {
34
+ qe: 0x3401,
35
+ nmps: 2,
36
+ nlps: 6,
37
+ switchFlag: 0
38
+ }, {
39
+ qe: 0x1801,
40
+ nmps: 3,
41
+ nlps: 9,
42
+ switchFlag: 0
43
+ }, {
44
+ qe: 0x0ac1,
45
+ nmps: 4,
46
+ nlps: 12,
47
+ switchFlag: 0
48
+ }, {
49
+ qe: 0x0521,
50
+ nmps: 5,
51
+ nlps: 29,
52
+ switchFlag: 0
53
+ }, {
54
+ qe: 0x0221,
55
+ nmps: 38,
56
+ nlps: 33,
57
+ switchFlag: 0
58
+ }, {
59
+ qe: 0x5601,
60
+ nmps: 7,
61
+ nlps: 6,
62
+ switchFlag: 1
63
+ }, {
64
+ qe: 0x5401,
65
+ nmps: 8,
66
+ nlps: 14,
67
+ switchFlag: 0
68
+ }, {
69
+ qe: 0x4801,
70
+ nmps: 9,
71
+ nlps: 14,
72
+ switchFlag: 0
73
+ }, {
74
+ qe: 0x3801,
75
+ nmps: 10,
76
+ nlps: 14,
77
+ switchFlag: 0
78
+ }, {
79
+ qe: 0x3001,
80
+ nmps: 11,
81
+ nlps: 17,
82
+ switchFlag: 0
83
+ }, {
84
+ qe: 0x2401,
85
+ nmps: 12,
86
+ nlps: 18,
87
+ switchFlag: 0
88
+ }, {
89
+ qe: 0x1c01,
90
+ nmps: 13,
91
+ nlps: 20,
92
+ switchFlag: 0
93
+ }, {
94
+ qe: 0x1601,
95
+ nmps: 29,
96
+ nlps: 21,
97
+ switchFlag: 0
98
+ }, {
99
+ qe: 0x5601,
100
+ nmps: 15,
101
+ nlps: 14,
102
+ switchFlag: 1
103
+ }, {
104
+ qe: 0x5401,
105
+ nmps: 16,
106
+ nlps: 14,
107
+ switchFlag: 0
108
+ }, {
109
+ qe: 0x5101,
110
+ nmps: 17,
111
+ nlps: 15,
112
+ switchFlag: 0
113
+ }, {
114
+ qe: 0x4801,
115
+ nmps: 18,
116
+ nlps: 16,
117
+ switchFlag: 0
118
+ }, {
119
+ qe: 0x3801,
120
+ nmps: 19,
121
+ nlps: 17,
122
+ switchFlag: 0
123
+ }, {
124
+ qe: 0x3401,
125
+ nmps: 20,
126
+ nlps: 18,
127
+ switchFlag: 0
128
+ }, {
129
+ qe: 0x3001,
130
+ nmps: 21,
131
+ nlps: 19,
132
+ switchFlag: 0
133
+ }, {
134
+ qe: 0x2801,
135
+ nmps: 22,
136
+ nlps: 19,
137
+ switchFlag: 0
138
+ }, {
139
+ qe: 0x2401,
140
+ nmps: 23,
141
+ nlps: 20,
142
+ switchFlag: 0
143
+ }, {
144
+ qe: 0x2201,
145
+ nmps: 24,
146
+ nlps: 21,
147
+ switchFlag: 0
148
+ }, {
149
+ qe: 0x1c01,
150
+ nmps: 25,
151
+ nlps: 22,
152
+ switchFlag: 0
153
+ }, {
154
+ qe: 0x1801,
155
+ nmps: 26,
156
+ nlps: 23,
157
+ switchFlag: 0
158
+ }, {
159
+ qe: 0x1601,
160
+ nmps: 27,
161
+ nlps: 24,
162
+ switchFlag: 0
163
+ }, {
164
+ qe: 0x1401,
165
+ nmps: 28,
166
+ nlps: 25,
167
+ switchFlag: 0
168
+ }, {
169
+ qe: 0x1201,
170
+ nmps: 29,
171
+ nlps: 26,
172
+ switchFlag: 0
173
+ }, {
174
+ qe: 0x1101,
175
+ nmps: 30,
176
+ nlps: 27,
177
+ switchFlag: 0
178
+ }, {
179
+ qe: 0x0ac1,
180
+ nmps: 31,
181
+ nlps: 28,
182
+ switchFlag: 0
183
+ }, {
184
+ qe: 0x09c1,
185
+ nmps: 32,
186
+ nlps: 29,
187
+ switchFlag: 0
188
+ }, {
189
+ qe: 0x08a1,
190
+ nmps: 33,
191
+ nlps: 30,
192
+ switchFlag: 0
193
+ }, {
194
+ qe: 0x0521,
195
+ nmps: 34,
196
+ nlps: 31,
197
+ switchFlag: 0
198
+ }, {
199
+ qe: 0x0441,
200
+ nmps: 35,
201
+ nlps: 32,
202
+ switchFlag: 0
203
+ }, {
204
+ qe: 0x02a1,
205
+ nmps: 36,
206
+ nlps: 33,
207
+ switchFlag: 0
208
+ }, {
209
+ qe: 0x0221,
210
+ nmps: 37,
211
+ nlps: 34,
212
+ switchFlag: 0
213
+ }, {
214
+ qe: 0x0141,
215
+ nmps: 38,
216
+ nlps: 35,
217
+ switchFlag: 0
218
+ }, {
219
+ qe: 0x0111,
220
+ nmps: 39,
221
+ nlps: 36,
222
+ switchFlag: 0
223
+ }, {
224
+ qe: 0x0085,
225
+ nmps: 40,
226
+ nlps: 37,
227
+ switchFlag: 0
228
+ }, {
229
+ qe: 0x0049,
230
+ nmps: 41,
231
+ nlps: 38,
232
+ switchFlag: 0
233
+ }, {
234
+ qe: 0x0025,
235
+ nmps: 42,
236
+ nlps: 39,
237
+ switchFlag: 0
238
+ }, {
239
+ qe: 0x0015,
240
+ nmps: 43,
241
+ nlps: 40,
242
+ switchFlag: 0
243
+ }, {
244
+ qe: 0x0009,
245
+ nmps: 44,
246
+ nlps: 41,
247
+ switchFlag: 0
248
+ }, {
249
+ qe: 0x0005,
250
+ nmps: 45,
251
+ nlps: 42,
252
+ switchFlag: 0
253
+ }, {
254
+ qe: 0x0001,
255
+ nmps: 45,
256
+ nlps: 43,
257
+ switchFlag: 0
258
+ }, {
259
+ qe: 0x5601,
260
+ nmps: 46,
261
+ nlps: 46,
262
+ switchFlag: 0
263
+ }];
264
+
265
+ class ArithmeticDecoder {
266
+ constructor(data, start, end) {
265
267
  this.data = data;
266
268
  this.bp = start;
267
269
  this.dataEnd = end;
268
270
  this.chigh = data[start];
269
271
  this.clow = 0;
270
272
  this.byteIn();
271
- this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F;
272
- this.clow = this.clow << 7 & 0xFFFF;
273
+ this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f;
274
+ this.clow = this.clow << 7 & 0xffff;
273
275
  this.ct -= 7;
274
276
  this.a = 0x8000;
275
277
  }
276
- ArithmeticDecoder.prototype = {
277
- byteIn: function ArithmeticDecoder_byteIn() {
278
- var data = this.data;
279
- var bp = this.bp;
280
- if (data[bp] === 0xFF) {
281
- var b1 = data[bp + 1];
282
- if (b1 > 0x8F) {
283
- this.clow += 0xFF00;
284
- this.ct = 8;
285
- } else {
286
- bp++;
287
- this.clow += data[bp] << 9;
288
- this.ct = 7;
289
- this.bp = bp;
290
- }
278
+
279
+ byteIn() {
280
+ const data = this.data;
281
+ let bp = this.bp;
282
+
283
+ if (data[bp] === 0xff) {
284
+ if (data[bp + 1] > 0x8f) {
285
+ this.clow += 0xff00;
286
+ this.ct = 8;
291
287
  } else {
292
288
  bp++;
293
- this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;
294
- this.ct = 8;
289
+ this.clow += data[bp] << 9;
290
+ this.ct = 7;
295
291
  this.bp = bp;
296
292
  }
297
- if (this.clow > 0xFFFF) {
298
- this.chigh += this.clow >> 16;
299
- this.clow &= 0xFFFF;
300
- }
301
- },
302
- readBit: function ArithmeticDecoder_readBit(contexts, pos) {
303
- var cx_index = contexts[pos] >> 1,
304
- cx_mps = contexts[pos] & 1;
305
- var qeTableIcx = QeTable[cx_index];
306
- var qeIcx = qeTableIcx.qe;
307
- var d;
308
- var a = this.a - qeIcx;
309
- if (this.chigh < qeIcx) {
310
- if (a < qeIcx) {
311
- a = qeIcx;
312
- d = cx_mps;
313
- cx_index = qeTableIcx.nmps;
314
- } else {
315
- a = qeIcx;
316
- d = 1 ^ cx_mps;
317
- if (qeTableIcx.switchFlag === 1) {
318
- cx_mps = d;
319
- }
320
- cx_index = qeTableIcx.nlps;
321
- }
293
+ } else {
294
+ bp++;
295
+ this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;
296
+ this.ct = 8;
297
+ this.bp = bp;
298
+ }
299
+
300
+ if (this.clow > 0xffff) {
301
+ this.chigh += this.clow >> 16;
302
+ this.clow &= 0xffff;
303
+ }
304
+ }
305
+
306
+ readBit(contexts, pos) {
307
+ let cx_index = contexts[pos] >> 1,
308
+ cx_mps = contexts[pos] & 1;
309
+ const qeTableIcx = QeTable[cx_index];
310
+ const qeIcx = qeTableIcx.qe;
311
+ let d;
312
+ let a = this.a - qeIcx;
313
+
314
+ if (this.chigh < qeIcx) {
315
+ if (a < qeIcx) {
316
+ a = qeIcx;
317
+ d = cx_mps;
318
+ cx_index = qeTableIcx.nmps;
322
319
  } else {
323
- this.chigh -= qeIcx;
324
- if ((a & 0x8000) !== 0) {
325
- this.a = a;
326
- return cx_mps;
327
- }
328
- if (a < qeIcx) {
329
- d = 1 ^ cx_mps;
330
- if (qeTableIcx.switchFlag === 1) {
331
- cx_mps = d;
332
- }
333
- cx_index = qeTableIcx.nlps;
334
- } else {
335
- d = cx_mps;
336
- cx_index = qeTableIcx.nmps;
320
+ a = qeIcx;
321
+ d = 1 ^ cx_mps;
322
+
323
+ if (qeTableIcx.switchFlag === 1) {
324
+ cx_mps = d;
337
325
  }
326
+
327
+ cx_index = qeTableIcx.nlps;
328
+ }
329
+ } else {
330
+ this.chigh -= qeIcx;
331
+
332
+ if ((a & 0x8000) !== 0) {
333
+ this.a = a;
334
+ return cx_mps;
338
335
  }
339
- do {
340
- if (this.ct === 0) {
341
- this.byteIn();
336
+
337
+ if (a < qeIcx) {
338
+ d = 1 ^ cx_mps;
339
+
340
+ if (qeTableIcx.switchFlag === 1) {
341
+ cx_mps = d;
342
342
  }
343
- a <<= 1;
344
- this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;
345
- this.clow = this.clow << 1 & 0xFFFF;
346
- this.ct--;
347
- } while ((a & 0x8000) === 0);
348
- this.a = a;
349
- contexts[pos] = cx_index << 1 | cx_mps;
350
- return d;
343
+
344
+ cx_index = qeTableIcx.nlps;
345
+ } else {
346
+ d = cx_mps;
347
+ cx_index = qeTableIcx.nmps;
348
+ }
351
349
  }
352
- };
353
- return ArithmeticDecoder;
354
- }();
350
+
351
+ do {
352
+ if (this.ct === 0) {
353
+ this.byteIn();
354
+ }
355
+
356
+ a <<= 1;
357
+ this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1;
358
+ this.clow = this.clow << 1 & 0xffff;
359
+ this.ct--;
360
+ } while ((a & 0x8000) === 0);
361
+
362
+ this.a = a;
363
+ contexts[pos] = cx_index << 1 | cx_mps;
364
+ return d;
365
+ }
366
+
367
+ }
368
+
355
369
  exports.ArithmeticDecoder = ArithmeticDecoder;