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.
@@ -26,415 +26,281 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.FontLoader = exports.FontFaceObject = void 0;
28
28
 
29
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _util = require("../shared/util");
32
-
33
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+ class BaseFontLoader {
32
+ constructor({
33
+ docId,
34
+ onUnsupportedFeature
35
+ }) {
36
+ if (this.constructor === BaseFontLoader) {
37
+ (0, _util.unreachable)("Cannot initialize BaseFontLoader.");
38
+ }
34
39
 
35
- 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); }
40
+ this.docId = docId;
41
+ this._onUnsupportedFeature = onUnsupportedFeature;
42
+ this.nativeFontFaces = [];
43
+ this.styleElement = null;
44
+ }
36
45
 
37
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
46
+ addNativeFontFace(nativeFontFace) {
47
+ this.nativeFontFaces.push(nativeFontFace);
48
+ document.fonts.add(nativeFontFace);
49
+ }
38
50
 
39
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
51
+ insertRule(rule) {
52
+ let styleElement = this.styleElement;
40
53
 
41
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
54
+ if (!styleElement) {
55
+ styleElement = this.styleElement = document.createElement("style");
56
+ styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;
57
+ document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement);
58
+ }
42
59
 
43
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
60
+ const styleSheet = styleElement.sheet;
61
+ styleSheet.insertRule(rule, styleSheet.cssRules.length);
62
+ }
44
63
 
45
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
64
+ clear() {
65
+ this.nativeFontFaces.forEach(function (nativeFontFace) {
66
+ document.fonts.delete(nativeFontFace);
67
+ });
68
+ this.nativeFontFaces.length = 0;
46
69
 
47
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
70
+ if (this.styleElement) {
71
+ this.styleElement.remove();
72
+ this.styleElement = null;
73
+ }
74
+ }
48
75
 
49
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
76
+ async bind(font) {
77
+ if (font.attached || font.missingFile) {
78
+ return;
79
+ }
50
80
 
51
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
81
+ font.attached = true;
52
82
 
53
- 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); } }
83
+ if (this.isFontLoadingAPISupported) {
84
+ const nativeFontFace = font.createNativeFontFace();
54
85
 
55
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
86
+ if (nativeFontFace) {
87
+ this.addNativeFontFace(nativeFontFace);
56
88
 
57
- var BaseFontLoader =
58
- /*#__PURE__*/
59
- function () {
60
- function BaseFontLoader(_ref) {
61
- var docId = _ref.docId,
62
- onUnsupportedFeature = _ref.onUnsupportedFeature;
89
+ try {
90
+ await nativeFontFace.loaded;
91
+ } catch (ex) {
92
+ this._onUnsupportedFeature({
93
+ featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative
94
+ });
63
95
 
64
- _classCallCheck(this, BaseFontLoader);
96
+ (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);
97
+ font.disableFontFace = true;
98
+ throw ex;
99
+ }
100
+ }
65
101
 
66
- if (this.constructor === BaseFontLoader) {
67
- (0, _util.unreachable)('Cannot initialize BaseFontLoader.');
102
+ return;
68
103
  }
69
104
 
70
- this.docId = docId;
71
- this._onUnsupportedFeature = onUnsupportedFeature;
72
- this.nativeFontFaces = [];
73
- this.styleElement = null;
74
- }
105
+ const rule = font.createFontFaceRule();
75
106
 
76
- _createClass(BaseFontLoader, [{
77
- key: "addNativeFontFace",
78
- value: function addNativeFontFace(nativeFontFace) {
79
- this.nativeFontFaces.push(nativeFontFace);
80
- document.fonts.add(nativeFontFace);
81
- }
82
- }, {
83
- key: "insertRule",
84
- value: function insertRule(rule) {
85
- var styleElement = this.styleElement;
86
-
87
- if (!styleElement) {
88
- styleElement = this.styleElement = document.createElement('style');
89
- styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId);
90
- document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);
107
+ if (rule) {
108
+ this.insertRule(rule);
109
+
110
+ if (this.isSyncFontLoadingSupported) {
111
+ return;
91
112
  }
92
113
 
93
- var styleSheet = styleElement.sheet;
94
- styleSheet.insertRule(rule, styleSheet.cssRules.length);
95
- }
96
- }, {
97
- key: "clear",
98
- value: function clear() {
99
- this.nativeFontFaces.forEach(function (nativeFontFace) {
100
- document.fonts.delete(nativeFontFace);
101
- });
102
- this.nativeFontFaces.length = 0;
114
+ await new Promise(resolve => {
115
+ const request = this._queueLoadingCallback(resolve);
103
116
 
104
- if (this.styleElement) {
105
- this.styleElement.remove();
106
- this.styleElement = null;
107
- }
117
+ this._prepareFontLoadEvent([rule], [font], request);
118
+ });
108
119
  }
109
- }, {
110
- key: "bind",
111
- value: function () {
112
- var _bind = _asyncToGenerator(
113
- /*#__PURE__*/
114
- _regenerator.default.mark(function _callee(font) {
115
- var _this = this;
116
-
117
- var nativeFontFace, rule;
118
- return _regenerator.default.wrap(function _callee$(_context) {
119
- while (1) {
120
- switch (_context.prev = _context.next) {
121
- case 0:
122
- if (!(font.attached || font.missingFile)) {
123
- _context.next = 2;
124
- break;
125
- }
126
-
127
- return _context.abrupt("return");
128
-
129
- case 2:
130
- font.attached = true;
131
-
132
- if (!this.isFontLoadingAPISupported) {
133
- _context.next = 19;
134
- break;
135
- }
136
-
137
- nativeFontFace = font.createNativeFontFace();
138
-
139
- if (!nativeFontFace) {
140
- _context.next = 18;
141
- break;
142
- }
143
-
144
- this.addNativeFontFace(nativeFontFace);
145
- _context.prev = 7;
146
- _context.next = 10;
147
- return nativeFontFace.loaded;
148
-
149
- case 10:
150
- _context.next = 18;
151
- break;
152
-
153
- case 12:
154
- _context.prev = 12;
155
- _context.t0 = _context["catch"](7);
156
-
157
- this._onUnsupportedFeature({
158
- featureId: _util.UNSUPPORTED_FEATURES.font
159
- });
160
-
161
- (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'."));
162
- font.disableFontFace = true;
163
- throw _context.t0;
164
-
165
- case 18:
166
- return _context.abrupt("return");
167
-
168
- case 19:
169
- rule = font.createFontFaceRule();
170
-
171
- if (!rule) {
172
- _context.next = 25;
173
- break;
174
- }
175
-
176
- this.insertRule(rule);
177
-
178
- if (!this.isSyncFontLoadingSupported) {
179
- _context.next = 24;
180
- break;
181
- }
182
-
183
- return _context.abrupt("return");
184
-
185
- case 24:
186
- return _context.abrupt("return", new Promise(function (resolve) {
187
- var request = _this._queueLoadingCallback(resolve);
188
-
189
- _this._prepareFontLoadEvent([rule], [font], request);
190
- }));
191
-
192
- case 25:
193
- case "end":
194
- return _context.stop();
195
- }
196
- }
197
- }, _callee, this, [[7, 12]]);
198
- }));
199
-
200
- function bind(_x) {
201
- return _bind.apply(this, arguments);
202
- }
120
+ }
203
121
 
204
- return bind;
205
- }()
206
- }, {
207
- key: "_queueLoadingCallback",
208
- value: function _queueLoadingCallback(callback) {
209
- (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');
210
- }
211
- }, {
212
- key: "_prepareFontLoadEvent",
213
- value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
214
- (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');
215
- }
216
- }, {
217
- key: "isFontLoadingAPISupported",
218
- get: function get() {
219
- (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');
220
- }
221
- }, {
222
- key: "isSyncFontLoadingSupported",
223
- get: function get() {
224
- (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');
225
- }
226
- }, {
227
- key: "_loadTestFont",
228
- get: function get() {
229
- (0, _util.unreachable)('Abstract method `_loadTestFont`.');
230
- }
231
- }]);
122
+ _queueLoadingCallback(callback) {
123
+ (0, _util.unreachable)("Abstract method `_queueLoadingCallback`.");
124
+ }
232
125
 
233
- return BaseFontLoader;
234
- }();
126
+ get isFontLoadingAPISupported() {
127
+ const supported = typeof document !== "undefined" && !!document.fonts;
128
+ return (0, _util.shadow)(this, "isFontLoadingAPISupported", supported);
129
+ }
235
130
 
236
- var FontLoader;
237
- exports.FontLoader = FontLoader;
238
- {
239
- exports.FontLoader = FontLoader =
240
- /*#__PURE__*/
241
- function (_BaseFontLoader) {
242
- _inherits(GenericFontLoader, _BaseFontLoader);
131
+ get isSyncFontLoadingSupported() {
132
+ (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`.");
133
+ }
243
134
 
244
- function GenericFontLoader(docId) {
245
- var _this2;
135
+ get _loadTestFont() {
136
+ (0, _util.unreachable)("Abstract method `_loadTestFont`.");
137
+ }
246
138
 
247
- _classCallCheck(this, GenericFontLoader);
139
+ _prepareFontLoadEvent(rules, fontsToLoad, request) {
140
+ (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`.");
141
+ }
248
142
 
249
- _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
250
- _this2.loadingContext = {
143
+ }
144
+
145
+ let FontLoader;
146
+ exports.FontLoader = FontLoader;
147
+ {
148
+ exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {
149
+ constructor(docId) {
150
+ super(docId);
151
+ this.loadingContext = {
251
152
  requests: [],
252
153
  nextRequestId: 0
253
154
  };
254
- _this2.loadTestFontId = 0;
255
- return _this2;
155
+ this.loadTestFontId = 0;
256
156
  }
257
157
 
258
- _createClass(GenericFontLoader, [{
259
- key: "_queueLoadingCallback",
260
- value: function _queueLoadingCallback(callback) {
261
- function completeRequest() {
262
- (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');
263
- request.done = true;
264
-
265
- while (context.requests.length > 0 && context.requests[0].done) {
266
- var otherRequest = context.requests.shift();
267
- setTimeout(otherRequest.callback, 0);
268
- }
269
- }
158
+ get isSyncFontLoadingSupported() {
159
+ let supported = false;
270
160
 
271
- var context = this.loadingContext;
272
- var request = {
273
- id: "pdfjs-font-loading-".concat(context.nextRequestId++),
274
- done: false,
275
- complete: completeRequest,
276
- callback: callback
277
- };
278
- context.requests.push(request);
279
- return request;
280
- }
281
- }, {
282
- key: "_prepareFontLoadEvent",
283
- value: function _prepareFontLoadEvent(rules, fonts, request) {
284
- function int32(data, offset) {
285
- return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
286
- }
161
+ if (typeof navigator === "undefined") {
162
+ supported = true;
163
+ } else {
164
+ const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
287
165
 
288
- function spliceString(s, offset, remove, insert) {
289
- var chunk1 = s.substring(0, offset);
290
- var chunk2 = s.substring(offset + remove);
291
- return chunk1 + insert + chunk2;
166
+ if (m && m[1] >= 14) {
167
+ supported = true;
292
168
  }
169
+ }
293
170
 
294
- var i, ii;
295
- var canvas = document.createElement('canvas');
296
- canvas.width = 1;
297
- canvas.height = 1;
298
- var ctx = canvas.getContext('2d');
299
- var called = 0;
171
+ return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported);
172
+ }
300
173
 
301
- function isFontReady(name, callback) {
302
- called++;
174
+ _queueLoadingCallback(callback) {
175
+ function completeRequest() {
176
+ (0, _util.assert)(!request.done, "completeRequest() cannot be called twice.");
177
+ request.done = true;
303
178
 
304
- if (called > 30) {
305
- (0, _util.warn)('Load test font never loaded.');
306
- callback();
307
- return;
308
- }
179
+ while (context.requests.length > 0 && context.requests[0].done) {
180
+ const otherRequest = context.requests.shift();
181
+ setTimeout(otherRequest.callback, 0);
182
+ }
183
+ }
309
184
 
310
- ctx.font = '30px ' + name;
311
- ctx.fillText('.', 0, 20);
312
- var imageData = ctx.getImageData(0, 0, 1, 1);
185
+ const context = this.loadingContext;
186
+ const request = {
187
+ id: `pdfjs-font-loading-${context.nextRequestId++}`,
188
+ done: false,
189
+ complete: completeRequest,
190
+ callback
191
+ };
192
+ context.requests.push(request);
193
+ return request;
194
+ }
313
195
 
314
- if (imageData.data[3] > 0) {
315
- callback();
316
- return;
317
- }
196
+ get _loadTestFont() {
197
+ const getLoadTestFont = function () {
198
+ return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");
199
+ };
318
200
 
319
- setTimeout(isFontReady.bind(null, name, callback));
320
- }
201
+ return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont());
202
+ }
321
203
 
322
- var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
323
- var data = this._loadTestFont;
324
- var COMMENT_OFFSET = 976;
325
- data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
326
- var CFF_CHECKSUM_OFFSET = 16;
327
- var XXXX_VALUE = 0x58585858;
328
- var checksum = int32(data, CFF_CHECKSUM_OFFSET);
204
+ _prepareFontLoadEvent(rules, fonts, request) {
205
+ function int32(data, offset) {
206
+ return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
207
+ }
329
208
 
330
- for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
331
- checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
332
- }
209
+ function spliceString(s, offset, remove, insert) {
210
+ const chunk1 = s.substring(0, offset);
211
+ const chunk2 = s.substring(offset + remove);
212
+ return chunk1 + insert + chunk2;
213
+ }
333
214
 
334
- if (i < loadTestFontId.length) {
335
- checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
336
- }
215
+ let i, ii;
216
+ const canvas = document.createElement("canvas");
217
+ canvas.width = 1;
218
+ canvas.height = 1;
219
+ const ctx = canvas.getContext("2d");
220
+ let called = 0;
337
221
 
338
- data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
339
- var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
340
- var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
341
- this.insertRule(rule);
342
- var names = [];
222
+ function isFontReady(name, callback) {
223
+ called++;
343
224
 
344
- for (i = 0, ii = fonts.length; i < ii; i++) {
345
- names.push(fonts[i].loadedName);
225
+ if (called > 30) {
226
+ (0, _util.warn)("Load test font never loaded.");
227
+ callback();
228
+ return;
346
229
  }
347
230
 
348
- names.push(loadTestFontId);
349
- var div = document.createElement('div');
350
- div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
231
+ ctx.font = "30px " + name;
232
+ ctx.fillText(".", 0, 20);
233
+ const imageData = ctx.getImageData(0, 0, 1, 1);
351
234
 
352
- for (i = 0, ii = names.length; i < ii; ++i) {
353
- var span = document.createElement('span');
354
- span.textContent = 'Hi';
355
- span.style.fontFamily = names[i];
356
- div.appendChild(span);
235
+ if (imageData.data[3] > 0) {
236
+ callback();
237
+ return;
357
238
  }
358
239
 
359
- document.body.appendChild(div);
360
- isFontReady(loadTestFontId, function () {
361
- document.body.removeChild(div);
362
- request.complete();
363
- });
240
+ setTimeout(isFontReady.bind(null, name, callback));
364
241
  }
365
- }, {
366
- key: "isFontLoadingAPISupported",
367
- get: function get() {
368
- var supported = typeof document !== 'undefined' && !!document.fonts;
369
242
 
370
- if (supported && typeof navigator !== 'undefined') {
371
- var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
243
+ const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;
244
+ let data = this._loadTestFont;
245
+ const COMMENT_OFFSET = 976;
246
+ data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
247
+ const CFF_CHECKSUM_OFFSET = 16;
248
+ const XXXX_VALUE = 0x58585858;
249
+ let checksum = int32(data, CFF_CHECKSUM_OFFSET);
372
250
 
373
- if (m && m[1] < 63) {
374
- supported = false;
375
- }
376
- }
251
+ for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
252
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
253
+ }
377
254
 
378
- return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);
255
+ if (i < loadTestFontId.length) {
256
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0;
379
257
  }
380
- }, {
381
- key: "isSyncFontLoadingSupported",
382
- get: function get() {
383
- var supported = false;
384
258
 
385
- if (typeof navigator === 'undefined') {
386
- supported = true;
387
- } else {
388
- var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
259
+ data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
260
+ const url = `url(data:font/opentype;base64,${btoa(data)});`;
261
+ const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`;
262
+ this.insertRule(rule);
263
+ const names = [];
389
264
 
390
- if (m && m[1] >= 14) {
391
- supported = true;
392
- }
393
- }
394
-
395
- return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);
265
+ for (i = 0, ii = fonts.length; i < ii; i++) {
266
+ names.push(fonts[i].loadedName);
396
267
  }
397
- }, {
398
- key: "_loadTestFont",
399
- get: function get() {
400
- var getLoadTestFont = function getLoadTestFont() {
401
- return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');
402
- };
403
-
404
- return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());
268
+
269
+ names.push(loadTestFontId);
270
+ const div = document.createElement("div");
271
+ div.style.visibility = "hidden";
272
+ div.style.width = div.style.height = "10px";
273
+ div.style.position = "absolute";
274
+ div.style.top = div.style.left = "0px";
275
+
276
+ for (i = 0, ii = names.length; i < ii; ++i) {
277
+ const span = document.createElement("span");
278
+ span.textContent = "Hi";
279
+ span.style.fontFamily = names[i];
280
+ div.appendChild(span);
405
281
  }
406
- }]);
407
282
 
408
- return GenericFontLoader;
409
- }(BaseFontLoader);
410
- }
411
- var IsEvalSupportedCached = {
412
- get value() {
413
- return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());
414
- }
283
+ document.body.appendChild(div);
284
+ isFontReady(loadTestFontId, function () {
285
+ document.body.removeChild(div);
286
+ request.complete();
287
+ });
288
+ }
415
289
 
416
- };
417
-
418
- var FontFaceObject =
419
- /*#__PURE__*/
420
- function () {
421
- function FontFaceObject(translatedData, _ref2) {
422
- var _ref2$isEvalSupported = _ref2.isEvalSupported,
423
- isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
424
- _ref2$disableFontFace = _ref2.disableFontFace,
425
- disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
426
- _ref2$ignoreErrors = _ref2.ignoreErrors,
427
- ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
428
- _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
429
- onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
430
- _ref2$fontRegistry = _ref2.fontRegistry,
431
- fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
432
-
433
- _classCallCheck(this, FontFaceObject);
290
+ };
291
+ }
434
292
 
293
+ class FontFaceObject {
294
+ constructor(translatedData, {
295
+ isEvalSupported = true,
296
+ disableFontFace = false,
297
+ ignoreErrors = false,
298
+ onUnsupportedFeature = null,
299
+ fontRegistry = null
300
+ }) {
435
301
  this.compiledGlyphs = Object.create(null);
436
302
 
437
- for (var i in translatedData) {
303
+ for (const i in translatedData) {
438
304
  this[i] = translatedData[i];
439
305
  }
440
306
 
@@ -445,98 +311,92 @@ function () {
445
311
  this.fontRegistry = fontRegistry;
446
312
  }
447
313
 
448
- _createClass(FontFaceObject, [{
449
- key: "createNativeFontFace",
450
- value: function createNativeFontFace() {
451
- if (!this.data || this.disableFontFace) {
452
- return null;
453
- }
454
-
455
- var nativeFontFace = new FontFace(this.loadedName, this.data, {});
314
+ createNativeFontFace() {
315
+ if (!this.data || this.disableFontFace) {
316
+ return null;
317
+ }
456
318
 
457
- if (this.fontRegistry) {
458
- this.fontRegistry.registerFont(this);
459
- }
319
+ const nativeFontFace = new FontFace(this.loadedName, this.data, {});
460
320
 
461
- return nativeFontFace;
321
+ if (this.fontRegistry) {
322
+ this.fontRegistry.registerFont(this);
462
323
  }
463
- }, {
464
- key: "createFontFaceRule",
465
- value: function createFontFaceRule() {
466
- if (!this.data || this.disableFontFace) {
467
- return null;
468
- }
469
324
 
470
- var data = (0, _util.bytesToString)(new Uint8Array(this.data));
471
- var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
472
- var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
325
+ return nativeFontFace;
326
+ }
473
327
 
474
- if (this.fontRegistry) {
475
- this.fontRegistry.registerFont(this, url);
476
- }
328
+ createFontFaceRule() {
329
+ if (!this.data || this.disableFontFace) {
330
+ return null;
331
+ }
332
+
333
+ const data = (0, _util.bytesToString)(new Uint8Array(this.data));
334
+ const url = `url(data:${this.mimetype};base64,${btoa(data)});`;
335
+ const rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`;
477
336
 
478
- return rule;
337
+ if (this.fontRegistry) {
338
+ this.fontRegistry.registerFont(this, url);
479
339
  }
480
- }, {
481
- key: "getPathGenerator",
482
- value: function getPathGenerator(objs, character) {
483
- if (this.compiledGlyphs[character] !== undefined) {
484
- return this.compiledGlyphs[character];
485
- }
486
340
 
487
- var cmds, current;
341
+ return rule;
342
+ }
488
343
 
489
- try {
490
- cmds = objs.get(this.loadedName + '_path_' + character);
491
- } catch (ex) {
492
- if (!this.ignoreErrors) {
493
- throw ex;
494
- }
344
+ getPathGenerator(objs, character) {
345
+ if (this.compiledGlyphs[character] !== undefined) {
346
+ return this.compiledGlyphs[character];
347
+ }
495
348
 
496
- if (this._onUnsupportedFeature) {
497
- this._onUnsupportedFeature({
498
- featureId: _util.UNSUPPORTED_FEATURES.font
499
- });
500
- }
349
+ let cmds, current;
501
350
 
502
- (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
503
- return this.compiledGlyphs[character] = function (c, size) {};
351
+ try {
352
+ cmds = objs.get(this.loadedName + "_path_" + character);
353
+ } catch (ex) {
354
+ if (!this.ignoreErrors) {
355
+ throw ex;
504
356
  }
505
357
 
506
- if (this.isEvalSupported && IsEvalSupportedCached.value) {
507
- var args,
508
- js = '';
358
+ if (this._onUnsupportedFeature) {
359
+ this._onUnsupportedFeature({
360
+ featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath
361
+ });
362
+ }
509
363
 
510
- for (var i = 0, ii = cmds.length; i < ii; i++) {
511
- current = cmds[i];
364
+ (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`);
365
+ return this.compiledGlyphs[character] = function (c, size) {};
366
+ }
512
367
 
513
- if (current.args !== undefined) {
514
- args = current.args.join(',');
515
- } else {
516
- args = '';
517
- }
368
+ if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {
369
+ let args,
370
+ js = "";
518
371
 
519
- js += 'c.' + current.cmd + '(' + args + ');\n';
372
+ for (let i = 0, ii = cmds.length; i < ii; i++) {
373
+ current = cmds[i];
374
+
375
+ if (current.args !== undefined) {
376
+ args = current.args.join(",");
377
+ } else {
378
+ args = "";
520
379
  }
521
380
 
522
- return this.compiledGlyphs[character] = new Function('c', 'size', js);
381
+ js += "c." + current.cmd + "(" + args + ");\n";
523
382
  }
524
383
 
525
- return this.compiledGlyphs[character] = function (c, size) {
526
- for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
527
- current = cmds[_i];
384
+ return this.compiledGlyphs[character] = new Function("c", "size", js);
385
+ }
528
386
 
529
- if (current.cmd === 'scale') {
530
- current.args = [size, -size];
531
- }
387
+ return this.compiledGlyphs[character] = function (c, size) {
388
+ for (let i = 0, ii = cmds.length; i < ii; i++) {
389
+ current = cmds[i];
532
390
 
533
- c[current.cmd].apply(c, current.args);
391
+ if (current.cmd === "scale") {
392
+ current.args = [size, -size];
534
393
  }
535
- };
536
- }
537
- }]);
538
394
 
539
- return FontFaceObject;
540
- }();
395
+ c[current.cmd].apply(c, current.args);
396
+ }
397
+ };
398
+ }
399
+
400
+ }
541
401
 
542
402
  exports.FontFaceObject = FontFaceObject;