MCPcopy Create free account
hub / github.com/WebReflection/hypersimple / HS

Function HS

index.js:218–296  ·  view source on GitHub ↗
(futureNodes, futureStart, futureEnd, futureChanges, currentNodes, currentStart, currentEnd, currentChanges)

Source from the content-addressed store, hash-verified

216 var SKIP_OND = 50;
217
218 var HS = function HS(futureNodes, futureStart, futureEnd, futureChanges, currentNodes, currentStart, currentEnd, currentChanges) {
219 var k = 0;
220 /* istanbul ignore next */
221
222 var minLen = futureChanges < currentChanges ? futureChanges : currentChanges;
223 var link = Array(minLen++);
224 var tresh = Array(minLen);
225 tresh[0] = -1;
226
227 for (var i = 1; i < minLen; i++) {
228 tresh[i] = currentEnd;
229 }
230
231 var nodes = currentNodes.slice(currentStart, currentEnd);
232
233 for (var _i = futureStart; _i < futureEnd; _i++) {
234 var index = nodes.indexOf(futureNodes[_i]);
235
236 if (-1 < index) {
237 var idxInOld = index + currentStart;
238 k = findK(tresh, minLen, idxInOld);
239 /* istanbul ignore else */
240
241 if (-1 < k) {
242 tresh[k] = idxInOld;
243 link[k] = {
244 newi: _i,
245 oldi: idxInOld,
246 prev: link[k - 1]
247 };
248 }
249 }
250 }
251
252 k = --minLen;
253 --currentEnd;
254
255 while (tresh[k] > currentEnd) {
256 --k;
257 }
258
259 minLen = currentChanges + futureChanges - k;
260 var diff = Array(minLen);
261 var ptr = link[k];
262 --futureEnd;
263
264 while (ptr) {
265 var _ptr = ptr,
266 newi = _ptr.newi,
267 oldi = _ptr.oldi;
268
269 while (futureEnd > newi) {
270 diff[--minLen] = INSERTION;
271 --futureEnd;
272 }
273
274 while (currentEnd > oldi) {
275 diff[--minLen] = DELETION;

Callers 1

smartDiffFunction · 0.85

Calls 1

findKFunction · 0.85

Tested by

no test coverage detected