diff --git a/cjs/index.js b/cjs/index.js index b892e68..bef4e7e 100644 --- a/cjs/index.js +++ b/cjs/index.js @@ -23,10 +23,8 @@ exports.diffable = diffable; const persistent = fragment => { const {childNodes} = fragment; const {length} = childNodes; - // If the fragment has no content - // it should return undefined and break if (length < 2) - return childNodes[0]; + return length ? childNodes[0] : fragment; const nodes = slice.call(childNodes, 0); const firstChild = nodes[0]; const lastChild = nodes[length - 1]; diff --git a/es.js b/es.js index be3bc82..35db619 100644 --- a/es.js +++ b/es.js @@ -1 +1 @@ -var uwire=function(e){"use strict";const{indexOf:t,slice:n}=[];return e.diffable=(e,t)=>111===e.nodeType?1/t<0?t?(({firstChild:e,lastChild:t})=>{const n=document.createRange();return n.setStartAfter(e),n.setEndAfter(t),n.deleteContents(),e})(e):e.lastChild:t?e.valueOf():e.firstChild:e,e.persistent=e=>{const{childNodes:t}=e,{length:r}=t;if(r<2)return t[0];const l=n.call(t,0);return{ELEMENT_NODE:1,nodeType:111,firstChild:l[0],lastChild:l[r-1],valueOf(){if(t.length!==r){let t=0;for(;t111===e.nodeType?1/t<0?t?(({firstChild:e,lastChild:t})=>{const n=document.createRange();return n.setStartAfter(e),n.setEndAfter(t),n.deleteContents(),e})(e):e.lastChild:t?e.valueOf():e.firstChild:e,e.persistent=e=>{const{childNodes:t}=e,{length:r}=t;if(r<2)return r?t[0]:e;const l=n.call(t,0);return{ELEMENT_NODE:1,nodeType:111,firstChild:l[0],lastChild:l[r-1],valueOf(){if(t.length!==r){let t=0;for(;t node.nodeType === nodeType ? export const persistent = fragment => { const {childNodes} = fragment; const {length} = childNodes; - // If the fragment has no content - // it should return undefined and break if (length < 2) - return childNodes[0]; + return length ? childNodes[0] : fragment; const nodes = slice.call(childNodes, 0); const firstChild = nodes[0]; const lastChild = nodes[length - 1]; diff --git a/index.js b/index.js index 779b154..8f2de82 100644 --- a/index.js +++ b/index.js @@ -22,10 +22,8 @@ var uwire = (function (exports) { }; var persistent = function persistent(fragment) { var childNodes = fragment.childNodes; - var length = childNodes.length; // If the fragment has no content - // it should return undefined and break - - if (length < 2) return childNodes[0]; + var length = childNodes.length; + if (length < 2) return length ? childNodes[0] : fragment; var nodes = slice.call(childNodes, 0); var firstChild = nodes[0]; var lastChild = nodes[length - 1]; diff --git a/min.js b/min.js index dfeef04..a26e71e 100644 --- a/min.js +++ b/min.js @@ -1 +1 @@ -var uwire=function(e){"use strict";var l=[].slice;return e.diffable=function(e,t){return 111===e.nodeType?1/t<0?t?(n=(r=e).firstChild,i=r.lastChild,(l=document.createRange()).setStartAfter(n),l.setEndAfter(i),l.deleteContents(),n):e.lastChild:t?e.valueOf():e.firstChild:e;var r,n,i,l},e.persistent=function(t){var r=t.childNodes,n=r.length;if(n<2)return r[0];var i=l.call(r,0);return{ELEMENT_NODE:1,nodeType:111,firstChild:i[0],lastChild:i[n-1],valueOf:function(){if(r.length!==n)for(var e=0;e