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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11350 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +587 -242
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +36 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
package/lib/core/jpx_stream.js
CHANGED
@@ -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
|
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,18 +19,18 @@
|
|
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.JpxStream =
|
27
|
+
exports.JpxStream = void 0;
|
28
28
|
|
29
|
-
var _stream = require(
|
29
|
+
var _stream = require("./stream");
|
30
30
|
|
31
|
-
var _jpx = require(
|
31
|
+
var _jpx = require("./jpx");
|
32
32
|
|
33
|
-
var _util = require(
|
33
|
+
var _util = require("../shared/util");
|
34
34
|
|
35
35
|
var JpxStream = function JpxStreamClosure() {
|
36
36
|
function JpxStream(stream, maybeLength, dict, params) {
|
@@ -38,8 +38,10 @@ var JpxStream = function JpxStreamClosure() {
|
|
38
38
|
this.maybeLength = maybeLength;
|
39
39
|
this.dict = dict;
|
40
40
|
this.params = params;
|
41
|
+
|
41
42
|
_stream.DecodeStream.call(this, maybeLength);
|
42
43
|
}
|
44
|
+
|
43
45
|
JpxStream.prototype = Object.create(_stream.DecodeStream.prototype);
|
44
46
|
Object.defineProperty(JpxStream.prototype, 'bytes', {
|
45
47
|
get: function JpxStream_bytes() {
|
@@ -47,21 +49,26 @@ var JpxStream = function JpxStreamClosure() {
|
|
47
49
|
},
|
48
50
|
configurable: true
|
49
51
|
});
|
52
|
+
|
50
53
|
JpxStream.prototype.ensureBuffer = function (requested) {};
|
54
|
+
|
51
55
|
JpxStream.prototype.readBlock = function () {
|
52
56
|
if (this.eof) {
|
53
57
|
return;
|
54
58
|
}
|
59
|
+
|
55
60
|
var jpxImage = new _jpx.JpxImage();
|
56
61
|
jpxImage.parse(this.bytes);
|
57
62
|
var width = jpxImage.width;
|
58
63
|
var height = jpxImage.height;
|
59
64
|
var componentsCount = jpxImage.componentsCount;
|
60
65
|
var tileCount = jpxImage.tiles.length;
|
66
|
+
|
61
67
|
if (tileCount === 1) {
|
62
68
|
this.buffer = jpxImage.tiles[0].items;
|
63
69
|
} else {
|
64
70
|
var data = new Uint8ClampedArray(width * height * componentsCount);
|
71
|
+
|
65
72
|
for (var k = 0; k < tileCount; k++) {
|
66
73
|
var tileComponents = jpxImage.tiles[k];
|
67
74
|
var tileWidth = tileComponents.width;
|
@@ -73,6 +80,7 @@ var JpxStream = function JpxStreamClosure() {
|
|
73
80
|
var dataPosition = (width * tileTop + tileLeft) * componentsCount;
|
74
81
|
var imgRowSize = width * componentsCount;
|
75
82
|
var tileRowSize = tileWidth * componentsCount;
|
83
|
+
|
76
84
|
for (var j = 0; j < tileHeight; j++) {
|
77
85
|
var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);
|
78
86
|
data.set(rowBytes, dataPosition);
|
@@ -80,11 +88,15 @@ var JpxStream = function JpxStreamClosure() {
|
|
80
88
|
dataPosition += imgRowSize;
|
81
89
|
}
|
82
90
|
}
|
91
|
+
|
83
92
|
this.buffer = data;
|
84
93
|
}
|
94
|
+
|
85
95
|
this.bufferLength = this.buffer.length;
|
86
96
|
this.eof = true;
|
87
97
|
};
|
98
|
+
|
88
99
|
return JpxStream;
|
89
100
|
}();
|
101
|
+
|
90
102
|
exports.JpxStream = JpxStream;
|
package/lib/core/metrics.js
CHANGED
@@ -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
|
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,21 +19,21 @@
|
|
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.getMetrics =
|
27
|
+
exports.getMetrics = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _core_utils = require("./core_utils");
|
30
30
|
|
31
|
-
var getMetrics = (0,
|
31
|
+
var getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {
|
32
32
|
t['Courier'] = 600;
|
33
33
|
t['Courier-Bold'] = 600;
|
34
34
|
t['Courier-BoldOblique'] = 600;
|
35
35
|
t['Courier-Oblique'] = 600;
|
36
|
-
t['Helvetica'] = (0,
|
36
|
+
t['Helvetica'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
37
37
|
t['space'] = 278;
|
38
38
|
t['exclam'] = 278;
|
39
39
|
t['quotedbl'] = 355;
|
@@ -350,7 +350,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
350
350
|
t['imacron'] = 278;
|
351
351
|
t['Euro'] = 556;
|
352
352
|
});
|
353
|
-
t['Helvetica-Bold'] = (0,
|
353
|
+
t['Helvetica-Bold'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
354
354
|
t['space'] = 278;
|
355
355
|
t['exclam'] = 333;
|
356
356
|
t['quotedbl'] = 474;
|
@@ -667,7 +667,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
667
667
|
t['imacron'] = 278;
|
668
668
|
t['Euro'] = 556;
|
669
669
|
});
|
670
|
-
t['Helvetica-BoldOblique'] = (0,
|
670
|
+
t['Helvetica-BoldOblique'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
671
671
|
t['space'] = 278;
|
672
672
|
t['exclam'] = 333;
|
673
673
|
t['quotedbl'] = 474;
|
@@ -984,7 +984,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
984
984
|
t['imacron'] = 278;
|
985
985
|
t['Euro'] = 556;
|
986
986
|
});
|
987
|
-
t['Helvetica-Oblique'] = (0,
|
987
|
+
t['Helvetica-Oblique'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
988
988
|
t['space'] = 278;
|
989
989
|
t['exclam'] = 278;
|
990
990
|
t['quotedbl'] = 355;
|
@@ -1301,7 +1301,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
1301
1301
|
t['imacron'] = 278;
|
1302
1302
|
t['Euro'] = 556;
|
1303
1303
|
});
|
1304
|
-
t['Symbol'] = (0,
|
1304
|
+
t['Symbol'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
1305
1305
|
t['space'] = 250;
|
1306
1306
|
t['exclam'] = 333;
|
1307
1307
|
t['universal'] = 713;
|
@@ -1493,7 +1493,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
1493
1493
|
t['bracerightbt'] = 494;
|
1494
1494
|
t['apple'] = 790;
|
1495
1495
|
});
|
1496
|
-
t['Times-Roman'] = (0,
|
1496
|
+
t['Times-Roman'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
1497
1497
|
t['space'] = 250;
|
1498
1498
|
t['exclam'] = 333;
|
1499
1499
|
t['quotedbl'] = 408;
|
@@ -1810,7 +1810,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
1810
1810
|
t['imacron'] = 278;
|
1811
1811
|
t['Euro'] = 500;
|
1812
1812
|
});
|
1813
|
-
t['Times-Bold'] = (0,
|
1813
|
+
t['Times-Bold'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
1814
1814
|
t['space'] = 250;
|
1815
1815
|
t['exclam'] = 333;
|
1816
1816
|
t['quotedbl'] = 555;
|
@@ -2127,7 +2127,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
2127
2127
|
t['imacron'] = 278;
|
2128
2128
|
t['Euro'] = 500;
|
2129
2129
|
});
|
2130
|
-
t['Times-BoldItalic'] = (0,
|
2130
|
+
t['Times-BoldItalic'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
2131
2131
|
t['space'] = 250;
|
2132
2132
|
t['exclam'] = 389;
|
2133
2133
|
t['quotedbl'] = 555;
|
@@ -2444,7 +2444,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
2444
2444
|
t['imacron'] = 278;
|
2445
2445
|
t['Euro'] = 500;
|
2446
2446
|
});
|
2447
|
-
t['Times-Italic'] = (0,
|
2447
|
+
t['Times-Italic'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
2448
2448
|
t['space'] = 250;
|
2449
2449
|
t['exclam'] = 333;
|
2450
2450
|
t['quotedbl'] = 420;
|
@@ -2761,7 +2761,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
|
|
2761
2761
|
t['imacron'] = 278;
|
2762
2762
|
t['Euro'] = 500;
|
2763
2763
|
});
|
2764
|
-
t['ZapfDingbats'] = (0,
|
2764
|
+
t['ZapfDingbats'] = (0, _core_utils.getLookupTableFactory)(function (t) {
|
2765
2765
|
t['space'] = 278;
|
2766
2766
|
t['a1'] = 974;
|
2767
2767
|
t['a2'] = 961;
|
package/lib/core/murmurhash3.js
CHANGED
@@ -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
|
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,32 +19,47 @@
|
|
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.MurmurHash3_64 =
|
27
|
+
exports.MurmurHash3_64 = void 0;
|
28
28
|
|
29
|
-
var _util = require(
|
29
|
+
var _util = require("../shared/util");
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
32
|
+
|
33
|
+
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); } }
|
34
|
+
|
35
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
36
|
+
|
37
|
+
var SEED = 0xc3d2e1f0;
|
38
|
+
var MASK_HIGH = 0xffff0000;
|
39
|
+
var MASK_LOW = 0xffff;
|
40
|
+
|
41
|
+
var MurmurHash3_64 =
|
42
|
+
/*#__PURE__*/
|
43
|
+
function () {
|
34
44
|
function MurmurHash3_64(seed) {
|
35
|
-
|
45
|
+
_classCallCheck(this, MurmurHash3_64);
|
46
|
+
|
36
47
|
this.h1 = seed ? seed & 0xffffffff : SEED;
|
37
48
|
this.h2 = seed ? seed & 0xffffffff : SEED;
|
38
49
|
}
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
50
|
+
|
51
|
+
_createClass(MurmurHash3_64, [{
|
52
|
+
key: "update",
|
53
|
+
value: function update(input) {
|
54
|
+
var data, length;
|
55
|
+
|
43
56
|
if ((0, _util.isString)(input)) {
|
44
57
|
data = new Uint8Array(input.length * 2);
|
45
58
|
length = 0;
|
59
|
+
|
46
60
|
for (var i = 0, ii = input.length; i < ii; i++) {
|
47
61
|
var code = input.charCodeAt(i);
|
62
|
+
|
48
63
|
if (code <= 0xff) {
|
49
64
|
data[length++] = code;
|
50
65
|
} else {
|
@@ -58,17 +73,19 @@ var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
|
|
58
73
|
} else {
|
59
74
|
throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.');
|
60
75
|
}
|
76
|
+
|
61
77
|
var blockCounts = length >> 2;
|
62
78
|
var tailLength = length - blockCounts * 4;
|
63
79
|
var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);
|
64
|
-
var k1 = 0
|
65
|
-
|
66
|
-
var h1 = this.h1
|
67
|
-
|
68
|
-
var C1 = 0xcc9e2d51
|
69
|
-
|
70
|
-
var C1_LOW = C1 & MASK_LOW
|
71
|
-
|
80
|
+
var k1 = 0,
|
81
|
+
k2 = 0;
|
82
|
+
var h1 = this.h1,
|
83
|
+
h2 = this.h2;
|
84
|
+
var C1 = 0xcc9e2d51,
|
85
|
+
C2 = 0x1b873593;
|
86
|
+
var C1_LOW = C1 & MASK_LOW,
|
87
|
+
C2_LOW = C2 & MASK_LOW;
|
88
|
+
|
72
89
|
for (var _i = 0; _i < blockCounts; _i++) {
|
73
90
|
if (_i & 1) {
|
74
91
|
k1 = dataUint32[_i];
|
@@ -88,30 +105,38 @@ var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
|
|
88
105
|
h2 = h2 * 5 + 0xe6546b64;
|
89
106
|
}
|
90
107
|
}
|
108
|
+
|
91
109
|
k1 = 0;
|
110
|
+
|
92
111
|
switch (tailLength) {
|
93
112
|
case 3:
|
94
113
|
k1 ^= data[blockCounts * 4 + 2] << 16;
|
114
|
+
|
95
115
|
case 2:
|
96
116
|
k1 ^= data[blockCounts * 4 + 1] << 8;
|
117
|
+
|
97
118
|
case 1:
|
98
119
|
k1 ^= data[blockCounts * 4];
|
99
120
|
k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;
|
100
121
|
k1 = k1 << 15 | k1 >>> 17;
|
101
122
|
k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;
|
123
|
+
|
102
124
|
if (blockCounts & 1) {
|
103
125
|
h1 ^= k1;
|
104
126
|
} else {
|
105
127
|
h2 ^= k1;
|
106
128
|
}
|
129
|
+
|
107
130
|
}
|
131
|
+
|
108
132
|
this.h1 = h1;
|
109
133
|
this.h2 = h2;
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
var
|
134
|
+
}
|
135
|
+
}, {
|
136
|
+
key: "hexdigest",
|
137
|
+
value: function hexdigest() {
|
138
|
+
var h1 = this.h1,
|
139
|
+
h2 = this.h2;
|
115
140
|
h1 ^= h2 >>> 1;
|
116
141
|
h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;
|
117
142
|
h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;
|
@@ -119,16 +144,13 @@ var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
|
|
119
144
|
h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;
|
120
145
|
h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;
|
121
146
|
h1 ^= h2 >>> 1;
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
hex = '0' + hex;
|
126
|
-
}
|
127
|
-
str += hex;
|
128
|
-
}
|
129
|
-
return str;
|
147
|
+
var hex1 = (h1 >>> 0).toString(16),
|
148
|
+
hex2 = (h2 >>> 0).toString(16);
|
149
|
+
return hex1.padStart(8, '0') + hex2.padStart(8, '0');
|
130
150
|
}
|
131
|
-
};
|
151
|
+
}]);
|
152
|
+
|
132
153
|
return MurmurHash3_64;
|
133
154
|
}();
|
155
|
+
|
134
156
|
exports.MurmurHash3_64 = MurmurHash3_64;
|