From bc88ec42d8d0085a114aebd2df119d44c4616c9b Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 8 Jan 2024 17:17:15 +0100 Subject: [PATCH] fix(core): Ensure we copy passed in span data/tags/attributes So we do not mutate this if we update data there. --- packages/core/src/tracing/span.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/tracing/span.ts b/packages/core/src/tracing/span.ts index b436d0bd64e7..80a1a3da4d32 100644 --- a/packages/core/src/tracing/span.ts +++ b/packages/core/src/tracing/span.ts @@ -139,9 +139,9 @@ export class Span implements SpanInterface { this._traceId = spanContext.traceId || uuid4(); this._spanId = spanContext.spanId || uuid4().substring(16); this.startTimestamp = spanContext.startTimestamp || timestampInSeconds(); - this.tags = spanContext.tags || {}; - this.data = spanContext.data || {}; - this.attributes = spanContext.attributes || {}; + this.tags = spanContext.tags ? { ...spanContext.tags } : {}; + this.data = spanContext.data ? { ...spanContext.data } : {}; + this.attributes = spanContext.attributes ? { ...spanContext.attributes } : {}; this.instrumenter = spanContext.instrumenter || 'sentry'; this.origin = spanContext.origin || 'manual'; // eslint-disable-next-line deprecation/deprecation