MCPcopy Index your code
hub / github.com/immutable-js/immutable-js / removeBefore

Method removeBefore

src/List.js:301–335  ·  view source on GitHub ↗
(ownerID, level, index)

Source from the content-addressed store, hash-verified

299 // TODO: seems like these methods are very similar
300
301 removeBefore(ownerID, level, index) {
302 if (
303 (index & ((1 << (level + SHIFT)) - 1)) === 0 ||
304 this.array.length === 0
305 ) {
306 return this;
307 }
308 const originIndex = (index >>> level) & MASK;
309 if (originIndex >= this.array.length) {
310 return new VNode([], ownerID);
311 }
312 const removingFirst = originIndex === 0;
313 let newChild;
314 if (level > 0) {
315 const oldChild = this.array[originIndex];
316 newChild =
317 oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);
318 if (newChild === oldChild && removingFirst) {
319 return this;
320 }
321 }
322 if (removingFirst && !newChild) {
323 return this;
324 }
325 const editable = editableVNode(this, ownerID);
326 if (!removingFirst) {
327 for (let ii = 0; ii < originIndex; ii++) {
328 editable.array[ii] = undefined;
329 }
330 }
331 if (newChild) {
332 editable.array[originIndex] = newChild;
333 }
334 return editable;
335 }
336
337 removeAfter(ownerID, level, index) {
338 if (

Callers 1

setListBoundsFunction · 0.80

Calls 1

editableVNodeFunction · 0.85

Tested by

no test coverage detected