pdfjs-dist 2.0.489 → 2.2.228

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 (169) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +18515 -11402
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +48266 -37137
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/external/url/url-lib.js +627 -0
  10. package/image_decoders/pdf.image_decoders.js +11350 -0
  11. package/image_decoders/pdf.image_decoders.js.map +1 -0
  12. package/image_decoders/pdf.image_decoders.min.js +1 -0
  13. package/lib/core/annotation.js +587 -242
  14. package/lib/core/arithmetic_decoder.js +275 -245
  15. package/lib/core/bidi.js +65 -6
  16. package/lib/core/ccitt.js +173 -18
  17. package/lib/core/ccitt_stream.js +15 -6
  18. package/lib/core/cff_parser.js +433 -61
  19. package/lib/core/charsets.js +5 -4
  20. package/lib/core/chunked_stream.js +400 -152
  21. package/lib/core/cmap.js +326 -87
  22. package/lib/core/colorspace.js +874 -594
  23. package/lib/core/core_utils.js +147 -0
  24. package/lib/core/crypto.js +290 -45
  25. package/lib/core/document.js +560 -268
  26. package/lib/core/encodings.js +19 -10
  27. package/lib/core/evaluator.js +1005 -360
  28. package/lib/core/font_renderer.js +331 -97
  29. package/lib/core/fonts.js +812 -195
  30. package/lib/core/function.js +284 -71
  31. package/lib/core/glyphlist.js +4 -3
  32. package/lib/core/image.js +169 -62
  33. package/lib/core/image_utils.js +111 -0
  34. package/lib/core/jbig2.js +479 -66
  35. package/lib/core/jbig2_stream.js +19 -8
  36. package/lib/core/jpeg_stream.js +38 -13
  37. package/lib/core/jpg.js +253 -29
  38. package/lib/core/jpx.js +396 -6
  39. package/lib/core/jpx_stream.js +18 -6
  40. package/lib/core/metrics.js +15 -15
  41. package/lib/core/murmurhash3.js +56 -34
  42. package/lib/core/obj.js +1354 -488
  43. package/lib/core/operator_list.js +144 -31
  44. package/lib/core/parser.js +539 -191
  45. package/lib/core/pattern.js +148 -14
  46. package/lib/core/pdf_manager.js +323 -133
  47. package/lib/core/primitives.js +111 -24
  48. package/lib/core/ps_parser.js +134 -45
  49. package/lib/core/standard_fonts.js +17 -17
  50. package/lib/core/stream.js +313 -34
  51. package/lib/core/type1_parser.js +143 -13
  52. package/lib/core/unicode.js +32 -5
  53. package/lib/core/worker.js +217 -190
  54. package/lib/core/worker_stream.js +277 -0
  55. package/lib/display/annotation_layer.js +450 -133
  56. package/lib/display/api.js +1597 -784
  57. package/lib/display/api_compatibility.js +11 -13
  58. package/lib/display/canvas.js +360 -44
  59. package/lib/display/content_disposition.js +83 -32
  60. package/lib/display/display_utils.js +747 -0
  61. package/lib/display/fetch_stream.js +221 -90
  62. package/lib/display/font_loader.js +468 -236
  63. package/lib/display/metadata.js +38 -16
  64. package/lib/display/network.js +635 -428
  65. package/lib/display/network_utils.js +32 -19
  66. package/lib/display/node_stream.js +367 -175
  67. package/lib/display/pattern_helper.js +81 -31
  68. package/lib/display/svg.js +1235 -519
  69. package/lib/display/text_layer.js +153 -29
  70. package/lib/display/transport_stream.js +345 -94
  71. package/lib/display/webgl.js +64 -18
  72. package/lib/display/worker_options.js +5 -4
  73. package/lib/display/xml_parser.js +166 -53
  74. package/lib/examples/node/domstubs.js +60 -4
  75. package/lib/pdf.js +36 -14
  76. package/lib/pdf.worker.js +5 -3
  77. package/lib/shared/compatibility.js +158 -564
  78. package/lib/shared/global_scope.js +2 -2
  79. package/lib/shared/is_node.js +4 -4
  80. package/lib/shared/message_handler.js +521 -0
  81. package/lib/shared/streams_polyfill.js +21 -17
  82. package/lib/shared/url_polyfill.js +56 -0
  83. package/lib/shared/util.js +243 -710
  84. package/lib/test/unit/annotation_spec.js +870 -401
  85. package/lib/test/unit/api_spec.js +657 -345
  86. package/lib/test/unit/bidi_spec.js +7 -7
  87. package/lib/test/unit/cff_parser_spec.js +54 -11
  88. package/lib/test/unit/clitests_helper.js +10 -8
  89. package/lib/test/unit/cmap_spec.js +95 -41
  90. package/lib/test/unit/colorspace_spec.js +115 -63
  91. package/lib/test/unit/core_utils_spec.js +191 -0
  92. package/lib/test/unit/crypto_spec.js +17 -5
  93. package/lib/test/unit/custom_spec.js +43 -55
  94. package/lib/test/unit/display_svg_spec.js +34 -18
  95. package/lib/test/unit/display_utils_spec.js +273 -0
  96. package/lib/test/unit/document_spec.js +8 -13
  97. package/lib/test/unit/encodings_spec.js +25 -45
  98. package/lib/test/unit/evaluator_spec.js +38 -15
  99. package/lib/test/unit/fetch_stream_spec.js +109 -0
  100. package/lib/test/unit/function_spec.js +17 -5
  101. package/lib/test/unit/jasmine-boot.js +33 -20
  102. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  103. package/lib/test/unit/metadata_spec.js +71 -11
  104. package/lib/test/unit/murmurhash3_spec.js +3 -3
  105. package/lib/test/unit/network_spec.js +19 -54
  106. package/lib/test/unit/network_utils_spec.js +91 -14
  107. package/lib/test/unit/node_stream_spec.js +56 -32
  108. package/lib/test/unit/parser_spec.js +162 -71
  109. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  110. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  111. package/lib/test/unit/pdf_history_spec.js +21 -9
  112. package/lib/test/unit/primitives_spec.js +53 -20
  113. package/lib/test/unit/stream_spec.js +12 -4
  114. package/lib/test/unit/test_utils.js +273 -56
  115. package/lib/test/unit/testreporter.js +21 -3
  116. package/lib/test/unit/type1_parser_spec.js +8 -6
  117. package/lib/test/unit/ui_utils_spec.js +454 -16
  118. package/lib/test/unit/unicode_spec.js +18 -15
  119. package/lib/test/unit/util_spec.js +87 -128
  120. package/lib/web/annotation_layer_builder.js +39 -22
  121. package/lib/web/app.js +1290 -588
  122. package/lib/web/app_options.js +100 -62
  123. package/lib/web/base_viewer.js +511 -182
  124. package/lib/web/chromecom.js +261 -117
  125. package/lib/web/debugger.js +166 -22
  126. package/lib/web/download_manager.js +32 -13
  127. package/lib/web/firefox_print_service.js +20 -10
  128. package/lib/web/firefoxcom.js +315 -80
  129. package/lib/web/genericcom.js +89 -30
  130. package/lib/web/genericl10n.js +142 -30
  131. package/lib/web/grab_to_pan.js +28 -4
  132. package/lib/web/interfaces.js +170 -47
  133. package/lib/web/overlay_manager.js +235 -85
  134. package/lib/web/password_prompt.js +22 -14
  135. package/lib/web/pdf_attachment_viewer.js +38 -18
  136. package/lib/web/pdf_cursor_tools.js +39 -16
  137. package/lib/web/pdf_document_properties.js +255 -136
  138. package/lib/web/pdf_find_bar.js +84 -40
  139. package/lib/web/pdf_find_controller.js +495 -184
  140. package/lib/web/pdf_find_utils.js +111 -0
  141. package/lib/web/pdf_history.js +190 -53
  142. package/lib/web/pdf_link_service.js +138 -77
  143. package/lib/web/pdf_outline_viewer.js +122 -46
  144. package/lib/web/pdf_page_view.js +191 -67
  145. package/lib/web/pdf_presentation_mode.js +99 -34
  146. package/lib/web/pdf_print_service.js +61 -13
  147. package/lib/web/pdf_rendering_queue.js +28 -9
  148. package/lib/web/pdf_sidebar.js +141 -81
  149. package/lib/web/pdf_sidebar_resizer.js +42 -16
  150. package/lib/web/pdf_single_page_viewer.js +74 -66
  151. package/lib/web/pdf_thumbnail_view.js +104 -33
  152. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  153. package/lib/web/pdf_viewer.component.js +112 -32
  154. package/lib/web/pdf_viewer.js +91 -52
  155. package/lib/web/preferences.js +284 -89
  156. package/lib/web/secondary_toolbar.js +165 -40
  157. package/lib/web/text_layer_builder.js +134 -59
  158. package/lib/web/toolbar.js +78 -43
  159. package/lib/web/ui_utils.js +462 -136
  160. package/lib/web/view_history.js +215 -67
  161. package/lib/web/viewer_compatibility.js +4 -13
  162. package/package.json +5 -4
  163. package/web/pdf_viewer.css +79 -11
  164. package/web/pdf_viewer.js +6107 -3748
  165. package/web/pdf_viewer.js.map +1 -1
  166. package/lib/display/dom_utils.js +0 -309
  167. package/lib/test/unit/dom_utils_spec.js +0 -89
  168. package/lib/test/unit/fonts_spec.js +0 -81
  169. package/lib/web/dom_events.js +0 -137
@@ -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 2017 Mozilla Foundation
5
+ * Copyright 2019 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,43 +19,79 @@
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.clearPrimitiveCaches = clearPrimitiveCaches;
28
+ exports.isEOF = isEOF;
29
+ exports.isCmd = isCmd;
30
+ exports.isDict = isDict;
31
+ exports.isName = isName;
32
+ exports.isRef = isRef;
33
+ exports.isRefsEqual = isRefsEqual;
34
+ exports.isStream = isStream;
35
+ exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;
36
+
37
+ var _util = require("../shared/util");
27
38
 
28
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
39
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
29
40
 
30
41
  var EOF = {};
42
+ exports.EOF = EOF;
43
+
31
44
  var Name = function NameClosure() {
45
+ var nameCache = Object.create(null);
46
+
32
47
  function Name(name) {
33
48
  this.name = name;
34
49
  }
50
+
35
51
  Name.prototype = {};
36
- var nameCache = Object.create(null);
52
+
37
53
  Name.get = function Name_get(name) {
38
54
  var nameValue = nameCache[name];
39
55
  return nameValue ? nameValue : nameCache[name] = new Name(name);
40
56
  };
57
+
58
+ Name._clearCache = function () {
59
+ nameCache = Object.create(null);
60
+ };
61
+
41
62
  return Name;
42
63
  }();
64
+
65
+ exports.Name = Name;
66
+
43
67
  var Cmd = function CmdClosure() {
68
+ var cmdCache = Object.create(null);
69
+
44
70
  function Cmd(cmd) {
45
71
  this.cmd = cmd;
46
72
  }
73
+
47
74
  Cmd.prototype = {};
48
- var cmdCache = Object.create(null);
75
+
49
76
  Cmd.get = function Cmd_get(cmd) {
50
77
  var cmdValue = cmdCache[cmd];
51
78
  return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);
52
79
  };
80
+
81
+ Cmd._clearCache = function () {
82
+ cmdCache = Object.create(null);
83
+ };
84
+
53
85
  return Cmd;
54
86
  }();
87
+
88
+ exports.Cmd = Cmd;
89
+
55
90
  var Dict = function DictClosure() {
56
91
  var nonSerializable = function nonSerializableClosure() {
57
92
  return nonSerializable;
58
93
  };
94
+
59
95
  function Dict(xref) {
60
96
  this._map = Object.create(null);
61
97
  this.xref = xref;
@@ -63,6 +99,7 @@ var Dict = function DictClosure() {
63
99
  this.suppressEncryption = false;
64
100
  this.__nonSerializable__ = nonSerializable;
65
101
  }
102
+
66
103
  Dict.prototype = {
67
104
  assignXref: function Dict_assignXref(newXref) {
68
105
  this.xref = newXref;
@@ -71,12 +108,15 @@ var Dict = function DictClosure() {
71
108
  var value;
72
109
  var xref = this.xref,
73
110
  suppressEncryption = this.suppressEncryption;
111
+
74
112
  if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
75
113
  return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
76
114
  }
115
+
77
116
  if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {
78
117
  return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
79
118
  }
119
+
80
120
  value = this._map[key3] || null;
81
121
  return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
82
122
  },
@@ -84,38 +124,50 @@ var Dict = function DictClosure() {
84
124
  var value;
85
125
  var xref = this.xref,
86
126
  suppressEncryption = this.suppressEncryption;
127
+
87
128
  if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
88
129
  if (xref) {
89
130
  return xref.fetchIfRefAsync(value, suppressEncryption);
90
131
  }
132
+
91
133
  return Promise.resolve(value);
92
134
  }
135
+
93
136
  if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {
94
137
  if (xref) {
95
138
  return xref.fetchIfRefAsync(value, suppressEncryption);
96
139
  }
140
+
97
141
  return Promise.resolve(value);
98
142
  }
143
+
99
144
  value = this._map[key3] || null;
145
+
100
146
  if (xref) {
101
147
  return xref.fetchIfRefAsync(value, suppressEncryption);
102
148
  }
149
+
103
150
  return Promise.resolve(value);
104
151
  },
105
152
  getArray: function Dict_getArray(key1, key2, key3) {
106
153
  var value = this.get(key1, key2, key3);
107
154
  var xref = this.xref,
108
155
  suppressEncryption = this.suppressEncryption;
156
+
109
157
  if (!Array.isArray(value) || !xref) {
110
158
  return value;
111
159
  }
160
+
112
161
  value = value.slice();
162
+
113
163
  for (var i = 0, ii = value.length; i < ii; i++) {
114
164
  if (!isRef(value[i])) {
115
165
  continue;
116
166
  }
167
+
117
168
  value[i] = xref.fetch(value[i], suppressEncryption);
118
169
  }
170
+
119
171
  return value;
120
172
  },
121
173
  getRaw: function Dict_getRaw(key) {
@@ -137,44 +189,72 @@ var Dict = function DictClosure() {
137
189
  }
138
190
  };
139
191
  Dict.empty = new Dict(null);
192
+
140
193
  Dict.merge = function (xref, dictArray) {
141
194
  var mergedDict = new Dict(xref);
195
+
142
196
  for (var i = 0, ii = dictArray.length; i < ii; i++) {
143
197
  var dict = dictArray[i];
198
+
144
199
  if (!isDict(dict)) {
145
200
  continue;
146
201
  }
202
+
147
203
  for (var keyName in dict._map) {
148
204
  if (mergedDict._map[keyName] !== undefined) {
149
205
  continue;
150
206
  }
207
+
151
208
  mergedDict._map[keyName] = dict._map[keyName];
152
209
  }
153
210
  }
211
+
154
212
  return mergedDict;
155
213
  };
214
+
156
215
  return Dict;
157
216
  }();
217
+
218
+ exports.Dict = Dict;
219
+
158
220
  var Ref = function RefClosure() {
221
+ var refCache = Object.create(null);
222
+
159
223
  function Ref(num, gen) {
160
224
  this.num = num;
161
225
  this.gen = gen;
162
226
  }
227
+
163
228
  Ref.prototype = {
164
229
  toString: function Ref_toString() {
165
- var str = this.num + 'R';
166
- if (this.gen !== 0) {
167
- str += this.gen;
230
+ if (this.gen === 0) {
231
+ return "".concat(this.num, "R");
168
232
  }
169
- return str;
233
+
234
+ return "".concat(this.num, "R").concat(this.gen);
170
235
  }
171
236
  };
237
+
238
+ Ref.get = function (num, gen) {
239
+ var key = gen === 0 ? "".concat(num, "R") : "".concat(num, "R").concat(gen);
240
+ var refValue = refCache[key];
241
+ return refValue ? refValue : refCache[key] = new Ref(num, gen);
242
+ };
243
+
244
+ Ref._clearCache = function () {
245
+ refCache = Object.create(null);
246
+ };
247
+
172
248
  return Ref;
173
249
  }();
250
+
251
+ exports.Ref = Ref;
252
+
174
253
  var RefSet = function RefSetClosure() {
175
254
  function RefSet() {
176
255
  this.dict = Object.create(null);
177
256
  }
257
+
178
258
  RefSet.prototype = {
179
259
  has: function RefSet_has(ref) {
180
260
  return ref.toString() in this.dict;
@@ -188,10 +268,14 @@ var RefSet = function RefSetClosure() {
188
268
  };
189
269
  return RefSet;
190
270
  }();
271
+
272
+ exports.RefSet = RefSet;
273
+
191
274
  var RefSetCache = function RefSetCacheClosure() {
192
275
  function RefSetCache() {
193
276
  this.dict = Object.create(null);
194
277
  }
278
+
195
279
  RefSetCache.prototype = {
196
280
  get: function RefSetCache_get(ref) {
197
281
  return this.dict[ref.toString()];
@@ -216,38 +300,41 @@ var RefSetCache = function RefSetCacheClosure() {
216
300
  };
217
301
  return RefSetCache;
218
302
  }();
303
+
304
+ exports.RefSetCache = RefSetCache;
305
+
219
306
  function isEOF(v) {
220
307
  return v === EOF;
221
308
  }
309
+
222
310
  function isName(v, name) {
223
311
  return v instanceof Name && (name === undefined || v.name === name);
224
312
  }
313
+
225
314
  function isCmd(v, cmd) {
226
315
  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);
227
316
  }
317
+
228
318
  function isDict(v, type) {
229
319
  return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));
230
320
  }
321
+
231
322
  function isRef(v) {
232
323
  return v instanceof Ref;
233
324
  }
325
+
234
326
  function isRefsEqual(v1, v2) {
235
327
  return v1.num === v2.num && v1.gen === v2.gen;
236
328
  }
329
+
237
330
  function isStream(v) {
238
- return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.getBytes !== undefined;
331
+ return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined;
239
332
  }
240
- exports.EOF = EOF;
241
- exports.Cmd = Cmd;
242
- exports.Dict = Dict;
243
- exports.Name = Name;
244
- exports.Ref = Ref;
245
- exports.RefSet = RefSet;
246
- exports.RefSetCache = RefSetCache;
247
- exports.isEOF = isEOF;
248
- exports.isCmd = isCmd;
249
- exports.isDict = isDict;
250
- exports.isName = isName;
251
- exports.isRef = isRef;
252
- exports.isRefsEqual = isRefsEqual;
253
- exports.isStream = isStream;
333
+
334
+ function clearPrimitiveCaches() {
335
+ Cmd._clearCache();
336
+
337
+ Name._clearCache();
338
+
339
+ Ref._clearCache();
340
+ }
@@ -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 2017 Mozilla Foundation
5
+ * Copyright 2019 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,50 +19,72 @@
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.PostScriptParser = exports.PostScriptLexer = undefined;
27
+ exports.PostScriptParser = exports.PostScriptLexer = void 0;
28
28
 
29
- var _util = require('../shared/util');
29
+ var _util = require("../shared/util");
30
30
 
31
- var _primitives = require('./primitives');
31
+ var _primitives = require("./primitives");
32
32
 
33
- var PostScriptParser = function PostScriptParserClosure() {
33
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34
+
35
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
36
+
37
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
38
+
39
+ var PostScriptParser =
40
+ /*#__PURE__*/
41
+ function () {
34
42
  function PostScriptParser(lexer) {
43
+ _classCallCheck(this, PostScriptParser);
44
+
35
45
  this.lexer = lexer;
36
46
  this.operators = [];
37
47
  this.token = null;
38
48
  this.prev = null;
39
49
  }
40
- PostScriptParser.prototype = {
41
- nextToken: function PostScriptParser_nextToken() {
50
+
51
+ _createClass(PostScriptParser, [{
52
+ key: "nextToken",
53
+ value: function nextToken() {
42
54
  this.prev = this.token;
43
55
  this.token = this.lexer.getToken();
44
- },
45
- accept: function PostScriptParser_accept(type) {
56
+ }
57
+ }, {
58
+ key: "accept",
59
+ value: function accept(type) {
46
60
  if (this.token.type === type) {
47
61
  this.nextToken();
48
62
  return true;
49
63
  }
64
+
50
65
  return false;
51
- },
52
- expect: function PostScriptParser_expect(type) {
66
+ }
67
+ }, {
68
+ key: "expect",
69
+ value: function expect(type) {
53
70
  if (this.accept(type)) {
54
71
  return true;
55
72
  }
56
- throw new _util.FormatError('Unexpected symbol: found ' + this.token.type + ' expected ' + type + '.');
57
- },
58
- parse: function PostScriptParser_parse() {
73
+
74
+ throw new _util.FormatError("Unexpected symbol: found ".concat(this.token.type, " expected ").concat(type, "."));
75
+ }
76
+ }, {
77
+ key: "parse",
78
+ value: function parse() {
59
79
  this.nextToken();
60
80
  this.expect(PostScriptTokenTypes.LBRACE);
61
81
  this.parseBlock();
62
82
  this.expect(PostScriptTokenTypes.RBRACE);
63
83
  return this.operators;
64
- },
65
- parseBlock: function PostScriptParser_parseBlock() {
84
+ }
85
+ }, {
86
+ key: "parseBlock",
87
+ value: function parseBlock() {
66
88
  while (true) {
67
89
  if (this.accept(PostScriptTokenTypes.NUMBER)) {
68
90
  this.operators.push(this.prev.value);
@@ -74,12 +96,15 @@ var PostScriptParser = function PostScriptParserClosure() {
74
96
  return;
75
97
  }
76
98
  }
77
- },
78
- parseCondition: function PostScriptParser_parseCondition() {
99
+ }
100
+ }, {
101
+ key: "parseCondition",
102
+ value: function parseCondition() {
79
103
  var conditionLocation = this.operators.length;
80
104
  this.operators.push(null, null);
81
105
  this.parseBlock();
82
106
  this.expect(PostScriptTokenTypes.RBRACE);
107
+
83
108
  if (this.accept(PostScriptTokenTypes.IF)) {
84
109
  this.operators[conditionLocation] = this.operators.length;
85
110
  this.operators[conditionLocation + 1] = 'jz';
@@ -98,9 +123,12 @@ var PostScriptParser = function PostScriptParserClosure() {
98
123
  throw new _util.FormatError('PS Function: error parsing conditional.');
99
124
  }
100
125
  }
101
- };
126
+ }]);
127
+
102
128
  return PostScriptParser;
103
129
  }();
130
+
131
+ exports.PostScriptParser = PostScriptParser;
104
132
  var PostScriptTokenTypes = {
105
133
  LBRACE: 0,
106
134
  RBRACE: 1,
@@ -109,42 +137,86 @@ var PostScriptTokenTypes = {
109
137
  IF: 4,
110
138
  IFELSE: 5
111
139
  };
140
+
112
141
  var PostScriptToken = function PostScriptTokenClosure() {
113
- function PostScriptToken(type, value) {
114
- this.type = type;
115
- this.value = value;
116
- }
117
142
  var opCache = Object.create(null);
118
- PostScriptToken.getOperator = function PostScriptToken_getOperator(op) {
119
- var opValue = opCache[op];
120
- if (opValue) {
121
- return opValue;
143
+
144
+ var PostScriptToken =
145
+ /*#__PURE__*/
146
+ function () {
147
+ function PostScriptToken(type, value) {
148
+ _classCallCheck(this, PostScriptToken);
149
+
150
+ this.type = type;
151
+ this.value = value;
122
152
  }
123
- return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);
124
- };
125
- PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, '{');
126
- PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, '}');
127
- PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF');
128
- PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE');
153
+
154
+ _createClass(PostScriptToken, null, [{
155
+ key: "getOperator",
156
+ value: function getOperator(op) {
157
+ var opValue = opCache[op];
158
+
159
+ if (opValue) {
160
+ return opValue;
161
+ }
162
+
163
+ return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);
164
+ }
165
+ }, {
166
+ key: "LBRACE",
167
+ get: function get() {
168
+ return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{'));
169
+ }
170
+ }, {
171
+ key: "RBRACE",
172
+ get: function get() {
173
+ return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}'));
174
+ }
175
+ }, {
176
+ key: "IF",
177
+ get: function get() {
178
+ return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF'));
179
+ }
180
+ }, {
181
+ key: "IFELSE",
182
+ get: function get() {
183
+ return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE'));
184
+ }
185
+ }]);
186
+
187
+ return PostScriptToken;
188
+ }();
189
+
129
190
  return PostScriptToken;
130
191
  }();
131
- var PostScriptLexer = function PostScriptLexerClosure() {
192
+
193
+ var PostScriptLexer =
194
+ /*#__PURE__*/
195
+ function () {
132
196
  function PostScriptLexer(stream) {
197
+ _classCallCheck(this, PostScriptLexer);
198
+
133
199
  this.stream = stream;
134
200
  this.nextChar();
135
201
  this.strBuf = [];
136
202
  }
137
- PostScriptLexer.prototype = {
138
- nextChar: function PostScriptLexer_nextChar() {
203
+
204
+ _createClass(PostScriptLexer, [{
205
+ key: "nextChar",
206
+ value: function nextChar() {
139
207
  return this.currentChar = this.stream.getByte();
140
- },
141
- getToken: function PostScriptLexer_getToken() {
208
+ }
209
+ }, {
210
+ key: "getToken",
211
+ value: function getToken() {
142
212
  var comment = false;
143
213
  var ch = this.currentChar;
214
+
144
215
  while (true) {
145
216
  if (ch < 0) {
146
217
  return _primitives.EOF;
147
218
  }
219
+
148
220
  if (comment) {
149
221
  if (ch === 0x0A || ch === 0x0D) {
150
222
  comment = false;
@@ -154,8 +226,10 @@ var PostScriptLexer = function PostScriptLexerClosure() {
154
226
  } else if (!(0, _util.isSpace)(ch)) {
155
227
  break;
156
228
  }
229
+
157
230
  ch = this.nextChar();
158
231
  }
232
+
159
233
  switch (ch | 0) {
160
234
  case 0x30:
161
235
  case 0x31:
@@ -171,34 +245,45 @@ var PostScriptLexer = function PostScriptLexerClosure() {
171
245
  case 0x2D:
172
246
  case 0x2E:
173
247
  return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());
248
+
174
249
  case 0x7B:
175
250
  this.nextChar();
176
251
  return PostScriptToken.LBRACE;
252
+
177
253
  case 0x7D:
178
254
  this.nextChar();
179
255
  return PostScriptToken.RBRACE;
180
256
  }
257
+
181
258
  var strBuf = this.strBuf;
182
259
  strBuf.length = 0;
183
260
  strBuf[0] = String.fromCharCode(ch);
261
+
184
262
  while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {
185
263
  strBuf.push(String.fromCharCode(ch));
186
264
  }
265
+
187
266
  var str = strBuf.join('');
267
+
188
268
  switch (str.toLowerCase()) {
189
269
  case 'if':
190
270
  return PostScriptToken.IF;
271
+
191
272
  case 'ifelse':
192
273
  return PostScriptToken.IFELSE;
274
+
193
275
  default:
194
276
  return PostScriptToken.getOperator(str);
195
277
  }
196
- },
197
- getNumber: function PostScriptLexer_getNumber() {
278
+ }
279
+ }, {
280
+ key: "getNumber",
281
+ value: function getNumber() {
198
282
  var ch = this.currentChar;
199
283
  var strBuf = this.strBuf;
200
284
  strBuf.length = 0;
201
285
  strBuf[0] = String.fromCharCode(ch);
286
+
202
287
  while ((ch = this.nextChar()) >= 0) {
203
288
  if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {
204
289
  strBuf.push(String.fromCharCode(ch));
@@ -206,14 +291,18 @@ var PostScriptLexer = function PostScriptLexerClosure() {
206
291
  break;
207
292
  }
208
293
  }
294
+
209
295
  var value = parseFloat(strBuf.join(''));
296
+
210
297
  if (isNaN(value)) {
211
- throw new _util.FormatError('Invalid floating point number: ' + value);
298
+ throw new _util.FormatError("Invalid floating point number: ".concat(value));
212
299
  }
300
+
213
301
  return value;
214
302
  }
215
- };
303
+ }]);
304
+
216
305
  return PostScriptLexer;
217
306
  }();
218
- exports.PostScriptLexer = PostScriptLexer;
219
- exports.PostScriptParser = PostScriptParser;
307
+
308
+ exports.PostScriptLexer = PostScriptLexer;