From 08a40455253a9c8d6402d1f0777608ddcb1dd8c6 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Thu, 29 Aug 2024 16:25:54 +0200 Subject: [PATCH] fix(trace viewer): fix memory leak --- packages/trace-viewer/src/snapshotRenderer.ts | 119 +++++++++--------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/packages/trace-viewer/src/snapshotRenderer.ts b/packages/trace-viewer/src/snapshotRenderer.ts index 0b458c0cb5..a625487073 100644 --- a/packages/trace-viewer/src/snapshotRenderer.ts +++ b/packages/trace-viewer/src/snapshotRenderer.ts @@ -32,6 +32,7 @@ export class SnapshotRenderer { private _resources: ResourceSnapshot[]; private _snapshot: FrameSnapshot; private _callId: string; + private _renderResults = new WeakMap(); constructor(resources: ResourceSnapshot[], snapshots: FrameSnapshot[], index: number) { this._resources = resources; @@ -61,70 +62,70 @@ export class SnapshotRenderer { return escapeHTML(n); } - if (!(n as any)._string) { - if (isSubtreeReferenceSnapshot(n)) { - // Node reference. - const referenceIndex = snapshotIndex - n[0][0]; - if (referenceIndex >= 0 && referenceIndex <= snapshotIndex) { - const nodes = snapshotNodes(this._snapshots[referenceIndex]); - const nodeIndex = n[0][1]; - if (nodeIndex >= 0 && nodeIndex < nodes.length) - (n as any)._string = visit(nodes[nodeIndex], referenceIndex, parentTag, parentAttrs); - } - } else if (isNodeNameAttributesChildNodesSnapshot(n)) { - const [name, nodeAttrs, ...children] = n; - // Element node. - // Note that