File tree Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' preact-render-to-string ' : patch
3
+ ---
4
+
5
+ Perf: Remove unnecessary closure when rendering child nodes
Original file line number Diff line number Diff line change @@ -441,8 +441,9 @@ function _renderToString(
441
441
rendered . props . tpl == null ;
442
442
rendered = isTopLevelFragment ? rendered . props . children : rendered ;
443
443
444
- const renderChildren = ( ) =>
445
- _renderToString (
444
+ try {
445
+ // Recurse into children before invoking the after-diff hook
446
+ const str = _renderToString (
446
447
rendered ,
447
448
context ,
448
449
isSvgMode ,
@@ -451,10 +452,6 @@ function _renderToString(
451
452
asyncMode
452
453
) ;
453
454
454
- try {
455
- // Recurse into children before invoking the after-diff hook
456
- const str = renderChildren ( ) ;
457
-
458
455
if ( afterDiff ) afterDiff ( vnode ) ;
459
456
vnode [ PARENT ] = null ;
460
457
@@ -468,12 +465,27 @@ function _renderToString(
468
465
469
466
const renderNestedChildren = ( ) => {
470
467
try {
471
- return renderChildren ( ) ;
468
+ return _renderToString (
469
+ rendered ,
470
+ context ,
471
+ isSvgMode ,
472
+ selectValue ,
473
+ vnode ,
474
+ asyncMode
475
+ ) ;
472
476
} catch ( e ) {
473
477
if ( ! e || typeof e . then !== 'function' ) throw e ;
474
478
475
479
return e . then (
476
- ( ) => renderChildren ( ) ,
480
+ ( ) =>
481
+ _renderToString (
482
+ rendered ,
483
+ context ,
484
+ isSvgMode ,
485
+ selectValue ,
486
+ vnode ,
487
+ asyncMode
488
+ ) ,
477
489
( ) => renderNestedChildren ( )
478
490
) ;
479
491
}
You can’t perform that action at this time.
0 commit comments