diff --git a/src/record/observer.ts b/src/record/observer.ts index c94aa735..3d6642cb 100644 --- a/src/record/observer.ts +++ b/src/record/observer.ts @@ -211,9 +211,11 @@ function initMutationObserver( }); }; - Array.from(movedSet).forEach(pushAdd); + for (var it = movedSet.values(), n = null; (n = it.next().value); ) { + pushAdd(n); + } - Array.from(addedSet).forEach(n => { + for (var it = addedSet.values(), n = null; (n = it.next().value); ) { if (!isAncestorInSet(droppedSet, n) && !isParentRemoved(removes, n)) { pushAdd(n); } else if (isAncestorInSet(movedSet, n)) { @@ -221,7 +223,7 @@ function initMutationObserver( } else { droppedSet.add(n); } - }); + } while (addQueue.length) { if (