MCPcopy
hub / github.com/immutable-js/immutable-js / iterateNode

Function iterateNode

src/List.js:400–428  ·  view source on GitHub ↗
(node, level, offset)

Source from the content-addressed store, hash-verified

398 }
399
400 function iterateNode(node, level, offset) {
401 let values;
402 const array = node && node.array;
403 let from = offset > left ? 0 : (left - offset) >> level;
404 let to = ((right - offset) >> level) + 1;
405 if (to > SIZE) {
406 to = SIZE;
407 }
408 return () => {
409 while (true) {
410 if (values) {
411 const value = values();
412 if (value !== DONE) {
413 return value;
414 }
415 values = null;
416 }
417 if (from === to) {
418 return DONE;
419 }
420 const idx = reverse ? --to : from++;
421 values = iterateNodeOrLeaf(
422 array && array[idx],
423 level - SHIFT,
424 offset + (idx << level)
425 );
426 }
427 };
428 }
429}
430
431/**

Callers 1

iterateNodeOrLeafFunction · 0.85

Calls 2

iterateNodeOrLeafFunction · 0.85
valuesFunction · 0.70

Tested by

no test coverage detected