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

Function mergeIntoNode

src/Map.js:768–784  ·  view source on GitHub ↗
(node, ownerID, shift, keyHash, entry)

Source from the content-addressed store, hash-verified

766}
767
768function mergeIntoNode(node, ownerID, shift, keyHash, entry) {
769 if (node.keyHash === keyHash) {
770 return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);
771 }
772
773 const idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;
774 const idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;
775
776 let newNode;
777 const nodes =
778 idx1 === idx2
779 ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]
780 : ((newNode = new ValueNode(ownerID, keyHash, entry)),
781 idx1 < idx2 ? [node, newNode] : [newNode, node]);
782
783 return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);
784}
785
786function createNodes(ownerID, entries, key, value) {
787 if (!ownerID) {

Callers 2

updateMethod · 0.85
updateMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected