diff --git a/tracker/tracker-assist/.yarn/install-state.gz b/tracker/tracker-assist/.yarn/install-state.gz index a6fe4294c..9ef26268b 100644 Binary files a/tracker/tracker-assist/.yarn/install-state.gz and b/tracker/tracker-assist/.yarn/install-state.gz differ diff --git a/tracker/tracker/.yarn/install-state.gz b/tracker/tracker/.yarn/install-state.gz index 195bd0d89..c1f9dd9b8 100644 Binary files a/tracker/tracker/.yarn/install-state.gz and b/tracker/tracker/.yarn/install-state.gz differ diff --git a/tracker/tracker/CHANGELOG.md b/tracker/tracker/CHANGELOG.md index ef8e97fd4..50166be88 100644 --- a/tracker/tracker/CHANGELOG.md +++ b/tracker/tracker/CHANGELOG.md @@ -1,3 +1,7 @@ +## 16.0.2 + +- fix attributeSender key generation to prevent calling native methods on objects + ## 16.0.1 - drop computing ts digits diff --git a/tracker/tracker/package.json b/tracker/tracker/package.json index ea0fbec48..13eab0724 100644 --- a/tracker/tracker/package.json +++ b/tracker/tracker/package.json @@ -1,7 +1,7 @@ { "name": "@openreplay/tracker", "description": "The OpenReplay tracker main package", - "version": "16.0.1", + "version": "16.0.2", "keywords": [ "logging", "replay" diff --git a/tracker/tracker/src/main/modules/attributeSender.ts b/tracker/tracker/src/main/modules/attributeSender.ts index 200de919b..70f7cff43 100644 --- a/tracker/tracker/src/main/modules/attributeSender.ts +++ b/tracker/tracker/src/main/modules/attributeSender.ts @@ -15,7 +15,9 @@ export class StringDictionary { getKey = (str: string): [number, boolean] => { let isNew = false - if (!this.backDict[str]) { + // avoiding potential native object properties + const safeKey = `__${str}` + if (!this.backDict[safeKey]) { isNew = true // shaving the first 2 digits of the timestamp (since they are irrelevant for next millennia) const shavedTs = Date.now() % 10 ** (13 - 2) @@ -26,10 +28,10 @@ export class StringDictionary { } else { this.lastSuffix = 1 } - this.backDict[str] = id + this.backDict[safeKey] = id this.lastTs = shavedTs } - return [this.backDict[str], isNew] + return [this.backDict[safeKey], isNew] } }