pdfjs-dist 2.0.943 → 2.1.266
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.
- package/bower.json +1 -1
- package/build/pdf.js +15329 -11095
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +12497 -4184
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/image_decoders/pdf.image_decoders.js +3438 -1209
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +1 -1
- package/lib/core/annotation.js +335 -109
- package/lib/core/arithmetic_decoder.js +274 -244
- package/lib/core/bidi.js +64 -5
- package/lib/core/ccitt.js +172 -17
- package/lib/core/ccitt_stream.js +14 -5
- package/lib/core/cff_parser.js +304 -28
- package/lib/core/charsets.js +4 -3
- package/lib/core/chunked_stream.js +379 -149
- package/lib/core/cmap.js +210 -40
- package/lib/core/colorspace.js +332 -187
- package/lib/core/crypto.js +289 -44
- package/lib/core/document.js +508 -249
- package/lib/core/encodings.js +18 -9
- package/lib/core/evaluator.js +657 -119
- package/lib/core/font_renderer.js +217 -34
- package/lib/core/fonts.js +632 -41
- package/lib/core/function.js +252 -26
- package/lib/core/glyphlist.js +2 -1
- package/lib/core/image.js +124 -27
- package/lib/core/jbig2.js +425 -65
- package/lib/core/jbig2_stream.js +18 -7
- package/lib/core/jpeg_stream.js +24 -8
- package/lib/core/jpg.js +208 -16
- package/lib/core/jpx.js +395 -5
- package/lib/core/jpx_stream.js +17 -5
- package/lib/core/metrics.js +3 -3
- package/lib/core/murmurhash3.js +23 -5
- package/lib/core/obj.js +625 -132
- package/lib/core/operator_list.js +104 -3
- package/lib/core/parser.js +262 -25
- package/lib/core/pattern.js +144 -12
- package/lib/core/pdf_manager.js +104 -70
- package/lib/core/primitives.js +74 -21
- package/lib/core/ps_parser.js +133 -44
- package/lib/core/standard_fonts.js +9 -9
- package/lib/core/stream.js +283 -31
- package/lib/core/type1_parser.js +138 -6
- package/lib/core/unicode.js +28 -1
- package/lib/core/worker.js +192 -57
- package/lib/display/annotation_layer.js +303 -123
- package/lib/display/api.js +1073 -574
- package/lib/display/api_compatibility.js +4 -1
- package/lib/display/canvas.js +314 -18
- package/lib/display/content_disposition.js +70 -23
- package/lib/display/dom_utils.js +112 -59
- package/lib/display/fetch_stream.js +95 -50
- package/lib/display/font_loader.js +250 -132
- package/lib/display/metadata.js +37 -15
- package/lib/display/network.js +123 -34
- package/lib/display/network_utils.js +23 -10
- package/lib/display/node_stream.js +162 -65
- package/lib/display/pattern_helper.js +57 -6
- package/lib/display/svg.js +194 -18
- package/lib/display/text_layer.js +128 -14
- package/lib/display/transport_stream.js +83 -27
- package/lib/display/webgl.js +63 -17
- package/lib/display/worker_options.js +4 -3
- package/lib/display/xml_parser.js +162 -52
- package/lib/examples/node/domstubs.js +56 -3
- package/lib/pdf.js +15 -2
- package/lib/pdf.worker.js +4 -2
- package/lib/shared/compatibility.js +129 -26
- package/lib/shared/global_scope.js +1 -1
- package/lib/shared/is_node.js +3 -3
- package/lib/shared/message_handler.js +103 -45
- package/lib/shared/streams_polyfill.js +20 -16
- package/lib/shared/url_polyfill.js +8 -2
- package/lib/shared/util.js +246 -84
- package/lib/test/unit/annotation_spec.js +99 -73
- package/lib/test/unit/api_spec.js +347 -113
- package/lib/test/unit/bidi_spec.js +6 -6
- package/lib/test/unit/cff_parser_spec.js +17 -5
- package/lib/test/unit/clitests_helper.js +7 -8
- package/lib/test/unit/cmap_spec.js +79 -25
- package/lib/test/unit/colorspace_spec.js +65 -18
- package/lib/test/unit/crypto_spec.js +16 -4
- package/lib/test/unit/custom_spec.js +40 -52
- package/lib/test/unit/display_svg_spec.js +32 -16
- package/lib/test/unit/document_spec.js +2 -2
- package/lib/test/unit/dom_utils_spec.js +8 -8
- package/lib/test/unit/encodings_spec.js +24 -44
- package/lib/test/unit/evaluator_spec.js +15 -8
- package/lib/test/unit/function_spec.js +16 -4
- package/lib/test/unit/jasmine-boot.js +29 -16
- package/lib/test/unit/message_handler_spec.js +19 -6
- package/lib/test/unit/metadata_spec.js +64 -11
- package/lib/test/unit/murmurhash3_spec.js +2 -2
- package/lib/test/unit/network_spec.js +19 -4
- package/lib/test/unit/network_utils_spec.js +6 -4
- package/lib/test/unit/node_stream_spec.js +50 -26
- package/lib/test/unit/parser_spec.js +13 -29
- package/lib/test/unit/pdf_find_controller_spec.js +144 -32
- package/lib/test/unit/pdf_find_utils_spec.js +10 -9
- package/lib/test/unit/pdf_history_spec.js +20 -8
- package/lib/test/unit/primitives_spec.js +23 -3
- package/lib/test/unit/stream_spec.js +8 -3
- package/lib/test/unit/test_utils.js +89 -26
- package/lib/test/unit/testreporter.js +19 -1
- package/lib/test/unit/type1_parser_spec.js +7 -5
- package/lib/test/unit/ui_utils_spec.js +162 -38
- package/lib/test/unit/unicode_spec.js +13 -10
- package/lib/test/unit/util_spec.js +89 -9
- package/lib/web/annotation_layer_builder.js +38 -21
- package/lib/web/app.js +610 -245
- package/lib/web/app_options.js +54 -34
- package/lib/web/base_viewer.js +359 -162
- package/lib/web/chromecom.js +159 -80
- package/lib/web/debugger.js +161 -17
- package/lib/web/download_manager.js +29 -11
- package/lib/web/firefox_print_service.js +16 -8
- package/lib/web/firefoxcom.js +127 -91
- package/lib/web/genericcom.js +50 -31
- package/lib/web/genericl10n.js +46 -34
- package/lib/web/grab_to_pan.js +25 -3
- package/lib/web/interfaces.js +108 -61
- package/lib/web/overlay_manager.js +67 -45
- package/lib/web/password_prompt.js +20 -12
- package/lib/web/pdf_attachment_viewer.js +37 -17
- package/lib/web/pdf_cursor_tools.js +38 -15
- package/lib/web/pdf_document_properties.js +65 -24
- package/lib/web/pdf_find_bar.js +48 -20
- package/lib/web/pdf_find_controller.js +290 -89
- package/lib/web/pdf_find_utils.js +19 -3
- package/lib/web/pdf_history.js +186 -49
- package/lib/web/pdf_link_service.js +127 -52
- package/lib/web/pdf_outline_viewer.js +71 -21
- package/lib/web/pdf_page_view.js +188 -63
- package/lib/web/pdf_presentation_mode.js +98 -33
- package/lib/web/pdf_print_service.js +54 -10
- package/lib/web/pdf_rendering_queue.js +26 -4
- package/lib/web/pdf_sidebar.js +116 -62
- package/lib/web/pdf_sidebar_resizer.js +41 -15
- package/lib/web/pdf_single_page_viewer.js +65 -68
- package/lib/web/pdf_thumbnail_view.js +102 -31
- package/lib/web/pdf_thumbnail_viewer.js +62 -22
- package/lib/web/pdf_viewer.component.js +111 -31
- package/lib/web/pdf_viewer.js +80 -60
- package/lib/web/preferences.js +61 -39
- package/lib/web/secondary_toolbar.js +101 -82
- package/lib/web/text_layer_builder.js +124 -69
- package/lib/web/toolbar.js +67 -27
- package/lib/web/ui_utils.js +284 -128
- package/lib/web/view_history.js +75 -51
- package/lib/web/viewer_compatibility.js +2 -1
- package/package.json +1 -1
- package/web/pdf_viewer.css +1 -1
- package/web/pdf_viewer.js +2200 -973
- package/web/pdf_viewer.js.map +1 -1
- package/lib/web/dom_events.js +0 -140
@@ -19,36 +19,40 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.
|
28
|
-
|
29
|
-
var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
30
|
-
|
31
|
-
var _util = require('../../shared/util');
|
27
|
+
exports.buildGetDocumentParams = buildGetDocumentParams;
|
28
|
+
exports.TEST_PDFS_PATH = exports.XRefMock = exports.NodeCMapReaderFactory = exports.NodeCanvasFactory = exports.NodeFileReaderFactory = void 0;
|
32
29
|
|
33
|
-
var
|
30
|
+
var _util = require("../../shared/util");
|
34
31
|
|
35
|
-
var
|
32
|
+
var _is_node = _interopRequireDefault(require("../../shared/is_node"));
|
36
33
|
|
37
|
-
var _primitives = require(
|
34
|
+
var _primitives = require("../../core/primitives");
|
38
35
|
|
39
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
40
37
|
|
41
38
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
42
39
|
|
43
|
-
var
|
40
|
+
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); } }
|
41
|
+
|
42
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
43
|
+
|
44
|
+
var NodeFileReaderFactory =
|
45
|
+
/*#__PURE__*/
|
46
|
+
function () {
|
44
47
|
function NodeFileReaderFactory() {
|
45
48
|
_classCallCheck(this, NodeFileReaderFactory);
|
46
49
|
}
|
47
50
|
|
48
51
|
_createClass(NodeFileReaderFactory, null, [{
|
49
|
-
key:
|
52
|
+
key: "fetch",
|
50
53
|
value: function fetch(params) {
|
51
54
|
var fs = require('fs');
|
55
|
+
|
52
56
|
var file = fs.readFileSync(params.path);
|
53
57
|
return new Uint8Array(file);
|
54
58
|
}
|
@@ -57,29 +61,81 @@ var NodeFileReaderFactory = function () {
|
|
57
61
|
return NodeFileReaderFactory;
|
58
62
|
}();
|
59
63
|
|
64
|
+
exports.NodeFileReaderFactory = NodeFileReaderFactory;
|
60
65
|
var TEST_PDFS_PATH = {
|
61
66
|
dom: '../pdfs/',
|
62
67
|
node: './test/pdfs/'
|
63
68
|
};
|
69
|
+
exports.TEST_PDFS_PATH = TEST_PDFS_PATH;
|
70
|
+
|
64
71
|
function buildGetDocumentParams(filename, options) {
|
65
72
|
var params = Object.create(null);
|
66
|
-
|
73
|
+
|
74
|
+
if ((0, _is_node.default)()) {
|
67
75
|
params.url = TEST_PDFS_PATH.node + filename;
|
68
76
|
} else {
|
69
77
|
params.url = new URL(TEST_PDFS_PATH.dom + filename, window.location).href;
|
70
78
|
}
|
79
|
+
|
71
80
|
for (var option in options) {
|
72
81
|
params[option] = options[option];
|
73
82
|
}
|
83
|
+
|
74
84
|
return params;
|
75
85
|
}
|
76
86
|
|
77
|
-
var
|
87
|
+
var NodeCanvasFactory =
|
88
|
+
/*#__PURE__*/
|
89
|
+
function () {
|
90
|
+
function NodeCanvasFactory() {
|
91
|
+
_classCallCheck(this, NodeCanvasFactory);
|
92
|
+
}
|
93
|
+
|
94
|
+
_createClass(NodeCanvasFactory, [{
|
95
|
+
key: "create",
|
96
|
+
value: function create(width, height) {
|
97
|
+
(0, _util.assert)(width > 0 && height > 0, 'Invalid canvas size');
|
98
|
+
|
99
|
+
var Canvas = require('canvas');
|
100
|
+
|
101
|
+
var canvas = Canvas.createCanvas(width, height);
|
102
|
+
return {
|
103
|
+
canvas: canvas,
|
104
|
+
context: canvas.getContext('2d')
|
105
|
+
};
|
106
|
+
}
|
107
|
+
}, {
|
108
|
+
key: "reset",
|
109
|
+
value: function reset(canvasAndContext, width, height) {
|
110
|
+
(0, _util.assert)(canvasAndContext.canvas, 'Canvas is not specified');
|
111
|
+
(0, _util.assert)(width > 0 && height > 0, 'Invalid canvas size');
|
112
|
+
canvasAndContext.canvas.width = width;
|
113
|
+
canvasAndContext.canvas.height = height;
|
114
|
+
}
|
115
|
+
}, {
|
116
|
+
key: "destroy",
|
117
|
+
value: function destroy(canvasAndContext) {
|
118
|
+
(0, _util.assert)(canvasAndContext.canvas, 'Canvas is not specified');
|
119
|
+
canvasAndContext.canvas.width = 0;
|
120
|
+
canvasAndContext.canvas.height = 0;
|
121
|
+
canvasAndContext.canvas = null;
|
122
|
+
canvasAndContext.context = null;
|
123
|
+
}
|
124
|
+
}]);
|
125
|
+
|
126
|
+
return NodeCanvasFactory;
|
127
|
+
}();
|
128
|
+
|
129
|
+
exports.NodeCanvasFactory = NodeCanvasFactory;
|
130
|
+
|
131
|
+
var NodeCMapReaderFactory =
|
132
|
+
/*#__PURE__*/
|
133
|
+
function () {
|
78
134
|
function NodeCMapReaderFactory(_ref) {
|
79
135
|
var _ref$baseUrl = _ref.baseUrl,
|
80
|
-
baseUrl = _ref$baseUrl ===
|
136
|
+
baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
|
81
137
|
_ref$isCompressed = _ref.isCompressed,
|
82
|
-
isCompressed = _ref$isCompressed ===
|
138
|
+
isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
|
83
139
|
|
84
140
|
_classCallCheck(this, NodeCMapReaderFactory);
|
85
141
|
|
@@ -88,7 +144,7 @@ var NodeCMapReaderFactory = function () {
|
|
88
144
|
}
|
89
145
|
|
90
146
|
_createClass(NodeCMapReaderFactory, [{
|
91
|
-
key:
|
147
|
+
key: "fetch",
|
92
148
|
value: function fetch(_ref2) {
|
93
149
|
var _this = this;
|
94
150
|
|
@@ -97,17 +153,22 @@ var NodeCMapReaderFactory = function () {
|
|
97
153
|
if (!this.baseUrl) {
|
98
154
|
return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'));
|
99
155
|
}
|
156
|
+
|
100
157
|
if (!name) {
|
101
158
|
return Promise.reject(new Error('CMap name must be specified.'));
|
102
159
|
}
|
160
|
+
|
103
161
|
return new Promise(function (resolve, reject) {
|
104
162
|
var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');
|
163
|
+
|
105
164
|
var fs = require('fs');
|
165
|
+
|
106
166
|
fs.readFile(url, function (error, data) {
|
107
167
|
if (error || !data) {
|
108
168
|
reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));
|
109
169
|
return;
|
110
170
|
}
|
171
|
+
|
111
172
|
resolve({
|
112
173
|
cMapData: new Uint8Array(data),
|
113
174
|
compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE
|
@@ -120,11 +181,16 @@ var NodeCMapReaderFactory = function () {
|
|
120
181
|
return NodeCMapReaderFactory;
|
121
182
|
}();
|
122
183
|
|
123
|
-
|
184
|
+
exports.NodeCMapReaderFactory = NodeCMapReaderFactory;
|
185
|
+
|
186
|
+
var XRefMock =
|
187
|
+
/*#__PURE__*/
|
188
|
+
function () {
|
124
189
|
function XRefMock(array) {
|
125
190
|
_classCallCheck(this, XRefMock);
|
126
191
|
|
127
192
|
this._map = Object.create(null);
|
193
|
+
|
128
194
|
for (var key in array) {
|
129
195
|
var obj = array[key];
|
130
196
|
this._map[obj.ref.toString()] = obj.data;
|
@@ -132,25 +198,26 @@ var XRefMock = function () {
|
|
132
198
|
}
|
133
199
|
|
134
200
|
_createClass(XRefMock, [{
|
135
|
-
key:
|
201
|
+
key: "fetch",
|
136
202
|
value: function fetch(ref) {
|
137
203
|
return this._map[ref.toString()];
|
138
204
|
}
|
139
205
|
}, {
|
140
|
-
key:
|
206
|
+
key: "fetchAsync",
|
141
207
|
value: function fetchAsync(ref) {
|
142
208
|
return Promise.resolve(this.fetch(ref));
|
143
209
|
}
|
144
210
|
}, {
|
145
|
-
key:
|
211
|
+
key: "fetchIfRef",
|
146
212
|
value: function fetchIfRef(obj) {
|
147
213
|
if (!(0, _primitives.isRef)(obj)) {
|
148
214
|
return obj;
|
149
215
|
}
|
216
|
+
|
150
217
|
return this.fetch(obj);
|
151
218
|
}
|
152
219
|
}, {
|
153
|
-
key:
|
220
|
+
key: "fetchIfRefAsync",
|
154
221
|
value: function fetchIfRefAsync(obj) {
|
155
222
|
return Promise.resolve(this.fetchIfRef(obj));
|
156
223
|
}
|
@@ -159,8 +226,4 @@ var XRefMock = function () {
|
|
159
226
|
return XRefMock;
|
160
227
|
}();
|
161
228
|
|
162
|
-
exports.
|
163
|
-
exports.NodeCMapReaderFactory = NodeCMapReaderFactory;
|
164
|
-
exports.XRefMock = XRefMock;
|
165
|
-
exports.buildGetDocumentParams = buildGetDocumentParams;
|
166
|
-
exports.TEST_PDFS_PATH = TEST_PDFS_PATH;
|
229
|
+
exports.XRefMock = XRefMock;
|
@@ -26,6 +26,7 @@ var TestReporter = function TestReporter(browser, appPath) {
|
|
26
26
|
var r = new XMLHttpRequest();
|
27
27
|
r.open('POST', action, true);
|
28
28
|
r.setRequestHeader('Content-Type', 'application/json');
|
29
|
+
|
29
30
|
r.onreadystatechange = function sendTaskResultOnreadystatechange(e) {
|
30
31
|
if (r.readyState === 4) {
|
31
32
|
if (r.status !== 200) {
|
@@ -37,47 +38,64 @@ var TestReporter = function TestReporter(browser, appPath) {
|
|
37
38
|
}
|
38
39
|
}
|
39
40
|
};
|
41
|
+
|
40
42
|
json['browser'] = browser;
|
41
43
|
r.send(JSON.stringify(json));
|
42
44
|
}
|
45
|
+
|
43
46
|
function sendInfo(message) {
|
44
|
-
send('/info', {
|
47
|
+
send('/info', {
|
48
|
+
message: message
|
49
|
+
});
|
45
50
|
}
|
51
|
+
|
46
52
|
function sendResult(status, description, error) {
|
47
53
|
var message = {
|
48
54
|
status: status,
|
49
55
|
description: description
|
50
56
|
};
|
57
|
+
|
51
58
|
if (typeof error !== 'undefined') {
|
52
59
|
message['error'] = error;
|
53
60
|
}
|
61
|
+
|
54
62
|
send('/submit_task_results', message);
|
55
63
|
}
|
64
|
+
|
56
65
|
function sendQuitRequest() {
|
57
66
|
send('/tellMeToQuit?path=' + escape(appPath), {});
|
58
67
|
}
|
68
|
+
|
59
69
|
this.now = function () {
|
60
70
|
return new Date().getTime();
|
61
71
|
};
|
72
|
+
|
62
73
|
this.jasmineStarted = function (suiteInfo) {
|
63
74
|
this.runnerStartTime = this.now();
|
64
75
|
sendInfo('Started tests for ' + browser + '.');
|
65
76
|
};
|
77
|
+
|
66
78
|
this.suiteStarted = function (result) {};
|
79
|
+
|
67
80
|
this.specStarted = function (result) {};
|
81
|
+
|
68
82
|
this.specDone = function (result) {
|
69
83
|
if (result.failedExpectations.length === 0) {
|
70
84
|
sendResult('TEST-PASSED', result.description);
|
71
85
|
} else {
|
72
86
|
var failedMessages = '';
|
73
87
|
var items = result.failedExpectations;
|
88
|
+
|
74
89
|
for (var i = 0, ii = items.length; i < ii; i++) {
|
75
90
|
failedMessages += items[i].message + ' ';
|
76
91
|
}
|
92
|
+
|
77
93
|
sendResult('TEST-UNEXPECTED-FAIL', result.description, failedMessages);
|
78
94
|
}
|
79
95
|
};
|
96
|
+
|
80
97
|
this.suiteDone = function (result) {};
|
98
|
+
|
81
99
|
this.jasmineDone = function () {
|
82
100
|
setTimeout(sendQuitRequest, 500);
|
83
101
|
};
|
@@ -19,13 +19,13 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _fonts = require(
|
24
|
+
var _fonts = require("../../core/fonts");
|
25
25
|
|
26
|
-
var _stream = require(
|
26
|
+
var _stream = require("../../core/stream");
|
27
27
|
|
28
|
-
var _type1_parser = require(
|
28
|
+
var _type1_parser = require("../../core/type1_parser");
|
29
29
|
|
30
30
|
describe('Type1Parser', function () {
|
31
31
|
it('splits tokens', function () {
|
@@ -95,7 +95,9 @@ describe('Type1Parser', function () {
|
|
95
95
|
it('parses font header encoding', function () {
|
96
96
|
var stream = new _stream.StringStream('/Encoding 256 array\n' + '0 1 255 {1 index exch /.notdef put} for\n' + 'dup 33 /arrowright put\n' + 'readonly def\n');
|
97
97
|
var parser = new _type1_parser.Type1Parser(stream, false, _fonts.SEAC_ANALYSIS_ENABLED);
|
98
|
-
var props = {
|
98
|
+
var props = {
|
99
|
+
overridableEncoding: true
|
100
|
+
};
|
99
101
|
parser.extractFontHeader(props);
|
100
102
|
expect(props.builtInEncoding[33]).toEqual('arrowright');
|
101
103
|
});
|