@@ -100,16 +100,18 @@ function updateHeadChildren(currentChildren, nextChildren) {
100100 }
101101}
102102
103- function _rerender ( current , next ) {
103+ function _rerender ( current , next , isParentSvg = false ) {
104104 const selector = current . element
105105 next . element = current . element
106106
107107 if ( isFalse ( current ) && isFalse ( next ) ) {
108108 return
109109 }
110110
111+ const isSvg = isParentSvg || next . type === 'svg'
112+
111113 if ( current . type !== next . type ) {
112- const nextSelector = render ( next )
114+ const nextSelector = render ( next , isSvg )
113115 selector . replaceWith ( nextSelector )
114116 return
115117 }
@@ -132,22 +134,22 @@ function _rerender(current, next) {
132134 const limit = Math . max ( current . children . length , next . children . length )
133135 if ( next . children . length > current . children . length ) {
134136 for ( let i = 0 ; i < current . children . length ; i ++ ) {
135- _rerender ( current . children [ i ] , next . children [ i ] )
137+ _rerender ( current . children [ i ] , next . children [ i ] , isSvg )
136138 }
137139 for ( let i = current . children . length ; i < next . children . length ; i ++ ) {
138- const nextSelector = render ( next . children [ i ] )
140+ const nextSelector = render ( next . children [ i ] , isSvg )
139141 selector . appendChild ( nextSelector )
140142 }
141143 } else if ( current . children . length > next . children . length ) {
142144 for ( let i = 0 ; i < next . children . length ; i ++ ) {
143- _rerender ( current . children [ i ] , next . children [ i ] )
145+ _rerender ( current . children [ i ] , next . children [ i ] , isSvg )
144146 }
145147 for ( let i = current . children . length - 1 ; i >= next . children . length ; i -- ) {
146148 selector . childNodes [ i ] . remove ( )
147149 }
148150 } else {
149151 for ( let i = limit - 1 ; i > - 1 ; i -- ) {
150- _rerender ( current . children [ i ] , next . children [ i ] )
152+ _rerender ( current . children [ i ] , next . children [ i ] , isSvg )
151153 }
152154 }
153155 }
0 commit comments