Skip to content

Commit cff4b6c

Browse files
authored
fix: skip .entries and Object.entries in for loop to improve flamegraph (elastic#2066)
1 parent f0741cc commit cff4b6c

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

lib/tracecontext/tracestate.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ class TraceState {
4444
// values for our namespace, set via setValue to
4545
// ensure names conform
4646
this.values = {}
47-
for (const [key, value] of Object.entries(defaultValues)) {
47+
for (const key in defaultValues) {
48+
const value = defaultValues[key]
4849
this.setValue(key, value)
4950
}
5051
}
@@ -213,7 +214,8 @@ class TraceState {
213214
toW3cString () {
214215
const json = this.toObject()
215216
const chars = []
216-
for (const [key, value] of Object.entries(json)) {
217+
for (const key in json) {
218+
const value = json[key]
217219
if (!value) { continue }
218220
chars.push(key)
219221
chars.push('=')
@@ -226,7 +228,8 @@ class TraceState {
226228

227229
_serializeValues (keyValues) {
228230
const chars = []
229-
for (const [key, value] of Object.entries(keyValues)) {
231+
for (const key in keyValues) {
232+
const value = keyValues[key]
230233
chars.push(`${key}:${value}`)
231234
chars.push(';')
232235
}
@@ -272,7 +275,7 @@ class TraceState {
272275
const bytes = []
273276

274277
const parts = string.split(',')
275-
for (const [, part] of parts.entries()) {
278+
for (const part of parts) {
276279
if (!part) { continue }
277280
const [listMember, value] = part.split('=')
278281
if (!listMember || !value) { continue }
@@ -292,7 +295,8 @@ class TraceState {
292295

293296
static _parseValues (rawValues) {
294297
const parsedValues = {}
295-
for (const [, keyValue] of rawValues.split(';').entries()) {
298+
const parts = rawValues.split(';')
299+
for (const keyValue of parts) {
296300
if (!keyValue) { continue }
297301
const [key, value] = keyValue.split(':')
298302
if (!key || !value) { continue }
@@ -324,8 +328,8 @@ class TraceState {
324328
if (key === listMemberNamespace) {
325329
const rawValues = buffer.slice(indexOfValue, indexOfValue + lengthValue).toString()
326330
const parsedValues = TraceState._parseValues(rawValues)
327-
for (const [key, value] of Object.entries(parsedValues)) {
328-
values[key] = value
331+
for (const key in parsedValues) {
332+
values[key] = parsedValues[key]
329333
}
330334
continue
331335
} else {

0 commit comments

Comments
 (0)