Skip to content

Commit 287f517

Browse files
committed
Improve decoding performance by 40% by preallocating arrays of known length (protobufjs#2033)
1 parent 952fc98 commit 287f517

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

cli/package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tanglechat/protobufjs",
3-
"version": "7.5.3",
3+
"version": "7.5.4",
44
"versionScheme": "~",
55
"description": "Protocol Buffers for JavaScript (& TypeScript). Forked for bigint support.",
66
"author": "Folf <[email protected]>",

src/converter.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ converter.fromObject = function fromObject(mtype) {
134134
("if(d%s){", prop)
135135
("if(!Array.isArray(d%s))", prop)
136136
("throw TypeError(%j)", field.fullName + ": array expected")
137-
("m%s=[]", prop)
137+
("m%s=Array(d%s.length)", prop, prop)
138138
("for(var i=0;i<d%s.length;++i){", prop);
139139
genValuePartial_fromObject(gen, field, /* not sorted */ i, prop + "[i]")
140140
("}")
@@ -287,7 +287,7 @@ converter.toObject = function toObject(mtype) {
287287
("}");
288288
} else if (field.repeated) { gen
289289
("if(m%s&&m%s.length){", prop, prop)
290-
("d%s=[]", prop)
290+
("d%s=Array(m%s.length)", prop, prop)
291291
("for(var j=0;j<m%s.length;++j){", prop);
292292
genValuePartial_toObject(gen, field, /* sorted */ index, prop + "[j]")
293293
("}");

0 commit comments

Comments
 (0)