diff --git a/packages/rrdom/package.json b/packages/rrdom/package.json index cff62be9..0e7f747d 100644 --- a/packages/rrdom/package.json +++ b/packages/rrdom/package.json @@ -1,6 +1,6 @@ { "name": "@highlight-run/rrdom", - "version": "0.1.8", + "version": "0.1.9", "scripts": { "dev": "rollup -c -w", "bundle": "rollup --config", diff --git a/packages/rrdom/src/diff.ts b/packages/rrdom/src/diff.ts index 900d7d61..e0f097f1 100644 --- a/packages/rrdom/src/diff.ts +++ b/packages/rrdom/src/diff.ts @@ -283,22 +283,22 @@ function diffChildren( ) { try { parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling); + } catch (e) { + console.error(e, parentNode, oldStartNode, oldEndNode); diff(oldStartNode, newEndNode, replayer, rrnodeMirror); oldStartNode = oldChildren[++oldStartIndex]; newEndNode = newChildren[--newEndIndex]; - } catch (e) { - console.error(e, parentNode, oldStartNode, oldEndNode); } } else if ( replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode) ) { try { parentNode.insertBefore(oldEndNode, oldStartNode); + } catch (e) { + console.error(e, parentNode, oldEndNode, oldStartNode); diff(oldEndNode, newStartNode, replayer, rrnodeMirror); oldEndNode = oldChildren[--oldEndIndex]; newStartNode = newChildren[++newStartIndex]; - } catch (e) { - console.error(e, parentNode, oldEndNode, oldStartNode); } } else { if (!oldIdToIndex) { @@ -314,10 +314,10 @@ function diffChildren( const nodeToMove = oldChildren[indexInOld]!; try { parentNode.insertBefore(nodeToMove, oldStartNode); - diff(nodeToMove, newStartNode, replayer, rrnodeMirror); - oldChildren[indexInOld] = undefined; } catch (e) { console.error(e, parentNode, nodeToMove, oldStartNode); + diff(nodeToMove, newStartNode, replayer, rrnodeMirror); + oldChildren[indexInOld] = undefined; } } else { const newNode = createOrGetNode( @@ -341,9 +341,9 @@ function diffChildren( } try { parentNode.insertBefore(newNode, oldStartNode || null); - diff(newNode, newStartNode, replayer, rrnodeMirror); } catch (e) { console.error(e, parentNode, newNode, oldStartNode || null); + diff(newNode, newStartNode, replayer, rrnodeMirror); } } newStartNode = newChildren[++newStartIndex]; @@ -367,9 +367,9 @@ function diffChildren( ); try { parentNode.insertBefore(newNode, referenceNode); - diff(newNode, newChildren[newStartIndex], replayer, rrnodeMirror); } catch (e) { console.error(e, parentNode, newNode, referenceNode); + diff(newNode, newChildren[newStartIndex], replayer, rrnodeMirror); } } } else if (newStartIndex > newEndIndex) { diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 1c508245..a0ab5b3a 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -1,6 +1,6 @@ { "name": "@highlight-run/rrweb", - "version": "2.0.9", + "version": "2.0.10", "description": "record and replay the web", "scripts": { "prepare": "npm run prepack",