@@ -18,9 +18,7 @@ import {
1818 NEXT_STATE ,
1919 RENDER ,
2020 SKIP_EFFECTS ,
21- VNODE ,
22- PARENT ,
23- CHILDREN
21+ VNODE
2422} from './constants' ;
2523
2624/** @typedef {import('preact').VNode } VNode */
@@ -74,7 +72,7 @@ function renderToString(vnode, context, opts) {
7472 ) {
7573 res = _renderToStringPretty ( vnode , context , opts ) ;
7674 } else {
77- res = _renderToString ( vnode , context , false , undefined , vnode ) ;
75+ res = _renderToString ( vnode , context , false , undefined ) ;
7876 }
7977
8078 // options._commit, we don't schedule any effects in this library right now,
@@ -183,7 +181,7 @@ const isArray = Array.isArray;
183181const assign = Object . assign ;
184182
185183/** The default export is an alias of `render()`. */
186- function _renderToString ( vnode , context , isSvgMode , selectValue , parent ) {
184+ function _renderToString ( vnode , context , isSvgMode , selectValue ) {
187185 if ( vnode == null || vnode === true || vnode === false || vnode === '' ) {
188186 return '' ;
189187 }
@@ -195,15 +193,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
195193
196194 if ( isArray ( vnode ) ) {
197195 let rendered = '' ;
198- parent [ CHILDREN ] = [ ] ;
199196 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- }
204197 rendered =
205- rendered +
206- _renderToString ( vnode [ i ] , context , isSvgMode , selectValue , parent ) ;
198+ rendered + _renderToString ( vnode [ i ] , context , isSvgMode , selectValue ) ;
207199 }
208200 return rendered ;
209201 }
@@ -214,14 +206,12 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
214206
215207 // components
216208 if ( isComponent ) {
217- vnode [ PARENT ] = parent ;
218209 if ( nodeName === Fragment ) {
219210 return _renderToString (
220211 vnode . props . children ,
221212 context ,
222213 isSvgMode ,
223- selectValue ,
224- vnode
214+ selectValue
225215 ) ;
226216 }
227217
@@ -241,8 +231,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
241231
242232 if ( options [ DIFFED ] ) options [ DIFFED ] ( vnode ) ;
243233
244- vnode [ CHILDREN ] = Array . isArray ( rendered ) ? rendered : [ rendered ] ;
245- return _renderToString ( rendered , context , isSvgMode , selectValue , vnode ) ;
234+ return _renderToString ( rendered , context , isSvgMode , selectValue ) ;
246235 }
247236
248237 // render JSX to HTML
@@ -257,6 +246,36 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
257246 for ( let name in props ) {
258247 let v = props [ name ] ;
259248
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+
260279 if (
261280 name === 'key' ||
262281 name === 'ref' ||
@@ -316,6 +335,11 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
316335 let pieces = '' ;
317336 let hasChildren = false ;
318337
338+ // let children = isArray(propChildren)
339+ // ? propChildren
340+ // : propChildren != null
341+ // ? [propChildren]
342+ // : undefined;
319343 if ( html ) {
320344 // return s + html + '</' + nodeName + '>';
321345 // s = s + html;
@@ -326,24 +350,13 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
326350 pieces = pieces + encodeEntities ( children ) ;
327351 hasChildren = true ;
328352 } else if ( isArray ( children ) ) {
329- vnode [ CHILDREN ] = [ ] ;
330-
331353 for ( let i = 0 ; i < children . length ; i ++ ) {
332354 let child = children [ i ] ;
333- vnode [ CHILDREN ] . push ( child ) ;
355+
334356 if ( child != null && child !== false ) {
335- if ( typeof child === 'object' ) {
336- child [ PARENT ] = vnode ;
337- }
338357 let childSvgMode =
339358 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 ) ;
347360
348361 // Skip if we received an empty string
349362 if ( ret ) {
@@ -354,19 +367,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent) {
354367 }
355368 }
356369 } else if ( children != null && children !== false && children !== true ) {
357- vnode [ CHILDREN ] = [ children ] ;
358- if ( typeof children === 'object' ) {
359- children [ PARENT ] = vnode ;
360- }
361370 let childSvgMode =
362371 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 ) ;
370373
371374 // Skip if we received an empty string
372375 if ( ret ) {
0 commit comments