@@ -165,6 +165,23 @@ function renderClassComponent(vnode, context) {
165
165
return c . render ( c . props , c . state , c . context ) ;
166
166
}
167
167
168
+ /**
169
+ * @param {any } vnode
170
+ * @returns {VNode }
171
+ */
172
+ function normalizeVNode ( vnode ) {
173
+ if ( vnode == null || typeof vnode == 'boolean' ) {
174
+ return null ;
175
+ } else if (
176
+ typeof vnode == 'string' ||
177
+ typeof vnode == 'number' ||
178
+ typeof vnode == 'bigint'
179
+ ) {
180
+ return h ( null , null , vnode ) ;
181
+ }
182
+ return vnode ;
183
+ }
184
+
168
185
/**
169
186
* @param {string } name
170
187
* @param {boolean } isSvgMode
@@ -237,6 +254,8 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
237
254
rendered =
238
255
rendered +
239
256
_renderToString ( vnode [ i ] , context , isSvgMode , selectValue , parent ) ;
257
+
258
+ vnode [ i ] = normalizeVNode ( vnode [ i ] ) ;
240
259
}
241
260
return rendered ;
242
261
}
@@ -372,6 +391,8 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
372
391
vnode [ CHILDREN ] = children ;
373
392
for ( let i = 0 ; i < children . length ; i ++ ) {
374
393
let child = children [ i ] ;
394
+ children [ i ] = normalizeVNode ( child ) ;
395
+
375
396
if ( child != null && child !== false ) {
376
397
let childSvgMode =
377
398
type === 'svg' || ( type !== 'foreignObject' && isSvgMode ) ;
@@ -391,7 +412,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
391
412
}
392
413
}
393
414
} else if ( children != null && children !== false && children !== true ) {
394
- vnode [ CHILDREN ] = [ children ] ;
415
+ vnode [ CHILDREN ] = [ normalizeVNode ( children ) ] ;
395
416
let childSvgMode =
396
417
type === 'svg' || ( type !== 'foreignObject' && isSvgMode ) ;
397
418
let ret = _renderToString (
0 commit comments