@@ -18,9 +18,7 @@ import {
18
18
NEXT_STATE ,
19
19
RENDER ,
20
20
SKIP_EFFECTS ,
21
- VNODE ,
22
- PARENT ,
23
- CHILDREN
21
+ VNODE
24
22
} from './constants' ;
25
23
26
24
/** @typedef {import('preact').VNode } VNode */
@@ -74,7 +72,7 @@ function renderToString(vnode, context, opts) {
74
72
) {
75
73
res = _renderToStringPretty ( vnode , context , opts ) ;
76
74
} else {
77
- res = _renderToString ( vnode , context , false , undefined , vnode ) ;
75
+ res = _renderToString ( vnode , context , false , undefined ) ;
78
76
}
79
77
80
78
// options._commit, we don't schedule any effects in this library right now,
@@ -183,7 +181,7 @@ const isArray = Array.isArray;
183
181
const assign = Object . assign ;
184
182
185
183
/** The default export is an alias of `render()`. */
186
- function _renderToString ( vnode , context , isSvgMode , selectValue , parent ) {
184
+ function _renderToString ( vnode , context , isSvgMode , selectValue ) {
187
185
if ( vnode == null || vnode === true || vnode === false || vnode === '' ) {
188
186
return '' ;
189
187
}
@@ -195,15 +193,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
195
193
196
194
if ( isArray ( vnode ) ) {
197
195
let rendered = '' ;
198
- parent [ CHILDREN ] = [ ] ;
199
196
for ( let i = 0 ; i < vnode . length ; i ++ ) {
200
- if ( typeof vnode [ i ] === 'object' && parent ) {
201
- vnode [ i ] [ PARENT ] = parent ;
202
- parent [ CHILDREN ] . push ( vnode [ i ] ) ;
203
- }
204
197
rendered =
205
- rendered +
206
- _renderToString ( vnode [ i ] , context , isSvgMode , selectValue , parent ) ;
198
+ rendered + _renderToString ( vnode [ i ] , context , isSvgMode , selectValue ) ;
207
199
}
208
200
return rendered ;
209
201
}
@@ -214,14 +206,12 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
214
206
215
207
// components
216
208
if ( isComponent ) {
217
- vnode [ PARENT ] = parent ;
218
209
if ( nodeName === Fragment ) {
219
210
return _renderToString (
220
211
vnode . props . children ,
221
212
context ,
222
213
isSvgMode ,
223
- selectValue ,
224
- vnode
214
+ selectValue
225
215
) ;
226
216
}
227
217
@@ -241,8 +231,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
241
231
242
232
if ( options [ DIFFED ] ) options [ DIFFED ] ( vnode ) ;
243
233
244
- vnode [ CHILDREN ] = Array . isArray ( rendered ) ? rendered : [ rendered ] ;
245
- return _renderToString ( rendered , context , isSvgMode , selectValue , vnode ) ;
234
+ return _renderToString ( rendered , context , isSvgMode , selectValue ) ;
246
235
}
247
236
248
237
// render JSX to HTML
@@ -257,6 +246,36 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
257
246
for ( let name in props ) {
258
247
let v = props [ name ] ;
259
248
249
+ // switch (name) {
250
+ // case 'className':
251
+ // if ('class' in props) continue;
252
+ // name = 'class';
253
+ // break;
254
+ // case 'htmlFor':
255
+ // if ('for' in props) continue;
256
+ // name = 'for';
257
+ // break;
258
+ // case 'defaultValue':
259
+ // name = 'value';
260
+ // break;
261
+ // case 'defaultChecked':
262
+ // name = 'checked';
263
+ // break;
264
+ // case 'defaultSelected':
265
+ // name = 'selected';
266
+ // break;
267
+ // case 'key':
268
+ // case 'ref':
269
+ // case '__self':
270
+ // case '__source':
271
+ // case 'children':
272
+ // continue;
273
+ // default:
274
+ // if (isSvgMode && XLINK.test(name)) {
275
+ // name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');
276
+ // }
277
+ // }
278
+
260
279
if (
261
280
name === 'key' ||
262
281
name === 'ref' ||
@@ -316,6 +335,11 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
316
335
let pieces = '' ;
317
336
let hasChildren = false ;
318
337
338
+ // let children = isArray(propChildren)
339
+ // ? propChildren
340
+ // : propChildren != null
341
+ // ? [propChildren]
342
+ // : undefined;
319
343
if ( html ) {
320
344
// return s + html + '</' + nodeName + '>';
321
345
// s = s + html;
@@ -326,24 +350,13 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
326
350
pieces = pieces + encodeEntities ( children ) ;
327
351
hasChildren = true ;
328
352
} else if ( isArray ( children ) ) {
329
- vnode [ CHILDREN ] = [ ] ;
330
-
331
353
for ( let i = 0 ; i < children . length ; i ++ ) {
332
354
let child = children [ i ] ;
333
- vnode [ CHILDREN ] . push ( child ) ;
355
+
334
356
if ( child != null && child !== false ) {
335
- if ( typeof child === 'object' ) {
336
- child [ PARENT ] = vnode ;
337
- }
338
357
let childSvgMode =
339
358
nodeName === 'svg' || ( nodeName !== 'foreignObject' && isSvgMode ) ;
340
- let ret = _renderToString (
341
- child ,
342
- context ,
343
- childSvgMode ,
344
- selectValue ,
345
- vnode
346
- ) ;
359
+ let ret = _renderToString ( child , context , childSvgMode , selectValue ) ;
347
360
348
361
// Skip if we received an empty string
349
362
if ( ret ) {
@@ -354,19 +367,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
354
367
}
355
368
}
356
369
} else if ( children != null && children !== false && children !== true ) {
357
- vnode [ CHILDREN ] = [ children ] ;
358
- if ( typeof children === 'object' ) {
359
- children [ PARENT ] = vnode ;
360
- }
361
370
let childSvgMode =
362
371
nodeName === 'svg' || ( nodeName !== 'foreignObject' && isSvgMode ) ;
363
- let ret = _renderToString (
364
- children ,
365
- context ,
366
- childSvgMode ,
367
- selectValue ,
368
- vnode
369
- ) ;
372
+ let ret = _renderToString ( children , context , childSvgMode , selectValue ) ;
370
373
371
374
// Skip if we received an empty string
372
375
if ( ret ) {
0 commit comments