MCPcopy Index your code
hub / github.com/getsentry/sentry-javascript / hMap

Function hMap

packages/replay-worker/examples/worker.js:61–107  ·  view source on GitHub ↗
(cd, mb, r)

Source from the content-addressed store, hash-verified

59// mb (max bits) must be at most 15
60// TODO: optimize/split up?
61var hMap = function (cd, mb, r) {
62 var s = cd.length;
63 // index
64 var i = 0;
65 // u16 "map": index -> # of codes with bit length = index
66 var l = new u16(mb);
67 // length of cd must be 288 (total # of codes)
68 for (; i < s; ++i) {
69 if (cd[i]) ++l[cd[i] - 1];
70 }
71 // u16 "map": index -> minimum code for bit length = index
72 var le = new u16(mb);
73 for (i = 1; i < mb; ++i) {
74 le[i] = (le[i - 1] + l[i - 1]) << 1;
75 }
76 var co;
77 if (r) {
78 // u16 "map": index -> number of actual bits, symbol for code
79 co = new u16(1 << mb);
80 // bits to remove for reverser
81 var rvb = 15 - mb;
82 for (i = 0; i < s; ++i) {
83 // ignore 0 lengths
84 if (cd[i]) {
85 // num encoding both symbol and bits read
86 var sv = (i << 4) | cd[i];
87 // free bits
88 var r_1 = mb - cd[i];
89 // start value
90 var v = le[cd[i] - 1]++ << r_1;
91 // m is end value
92 for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {
93 // every 16 bit value starting with the code yields the same result
94 co[rev[v] >> rvb] = sv;
95 }
96 }
97 }
98 } else {
99 co = new u16(s);
100 for (i = 0; i < s; ++i) {
101 if (cd[i]) {
102 co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);
103 }
104 }
105 }
106 return co;
107};
108// fixed length tree
109var flt = new u8(288);
110for (var i = 0; i < 144; ++i) flt[i] = 8;

Callers 2

worker.jsFile · 0.85
wblkFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected