Skip to content

Commit ed720ef

Browse files
authored
improve perf with array pre-allocate (#403)
1 parent 77595a1 commit ed720ef

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

.changeset/giant-schools-explode.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'preact-render-to-string': patch
3+
---
4+
5+
Improve performance by pre-allocating arrays

package-lock.json

Lines changed: 4 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ function _renderToString(
244244
let rendered = EMPTY_STR,
245245
renderArray;
246246
parent[CHILDREN] = vnode;
247-
for (let i = 0; i < vnode.length; i++) {
247+
const vnodeLength = vnode.length;
248+
for (let i = 0; i < vnodeLength; i++) {
248249
let child = vnode[i];
249250
if (child == null || typeof child == 'boolean') continue;
250251

@@ -262,7 +263,7 @@ function _renderToString(
262263
rendered = rendered + childRender;
263264
} else {
264265
if (!renderArray) {
265-
renderArray = [];
266+
renderArray = new Array(vnodeLength);
266267
}
267268

268269
if (rendered) renderArray.push(rendered);

0 commit comments

Comments
 (0)