From ab55e3853d9925e6256fd401dcd24e29ae01deae Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Mon, 8 Apr 2024 22:37:12 +0200 Subject: [PATCH] perf: remove unnecessary closure --- src/index.js | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/index.js b/src/index.js index 6be17849..a5c65faa 100644 --- a/src/index.js +++ b/src/index.js @@ -438,8 +438,9 @@ function _renderToString( rendered != null && rendered.type === Fragment && rendered.key == null; rendered = isTopLevelFragment ? rendered.props.children : rendered; - const renderChildren = () => - _renderToString( + try { + // Recurse into children before invoking the after-diff hook + const str = _renderToString( rendered, context, isSvgMode, @@ -448,10 +449,6 @@ function _renderToString( asyncMode ); - try { - // Recurse into children before invoking the after-diff hook - const str = renderChildren(); - if (afterDiff) afterDiff(vnode); vnode[PARENT] = null; @@ -465,12 +462,27 @@ function _renderToString( const renderNestedChildren = () => { try { - return renderChildren(); + return _renderToString( + rendered, + context, + isSvgMode, + selectValue, + vnode, + asyncMode + ); } catch (e) { if (!e || typeof e.then !== 'function') throw e; return e.then( - () => renderChildren(), + () => + _renderToString( + rendered, + context, + isSvgMode, + selectValue, + vnode, + asyncMode + ), () => renderNestedChildren() ); }