From f454498274c003cb08caf1a1ea7e283bcd89f048 Mon Sep 17 00:00:00 2001 From: mgechev Date: Thu, 20 Feb 2020 11:58:13 -0800 Subject: [PATCH] fix(devtools): make sure we dont fail on null elements --- projects/ng-devtools-backend/src/lib/observer/index.ts | 3 ++- .../profiler/recording/timeline/format-records.ts | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/projects/ng-devtools-backend/src/lib/observer/index.ts b/projects/ng-devtools-backend/src/lib/observer/index.ts index faaaf222094..d6ff4be179d 100644 --- a/projects/ng-devtools-backend/src/lib/observer/index.ts +++ b/projects/ng-devtools-backend/src/lib/observer/index.ts @@ -63,7 +63,8 @@ const insertElementProfile = (frames: ElementProfile[], position: ElementPositio for (let i = 0; i < position.length - 1; i++) { const pos = position[i]; if (!frames[pos]) { - debugger; + // console.warn('Unable to find parent node for', frames); + return; } frames = frames[pos].children; } diff --git a/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/profiler/recording/timeline/format-records.ts b/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/profiler/recording/timeline/format-records.ts index 86b070bf024..328b9826ada 100644 --- a/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/profiler/recording/timeline/format-records.ts +++ b/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/profiler/recording/timeline/format-records.ts @@ -28,6 +28,11 @@ const getLabel = (element: ElementProfile) => { const addFrame = (nodes: FlamegraphNode[], elements: ElementProfile[]): number => { let timeSpent = 0; elements.forEach(element => { + // Possibly undefined because of the insertion + // on the backend. + if (!element) { + return; + } const node: FlamegraphNode = { value: element.directives.reduce((a, c) => a + c.lifecycle + c.changeDetection, 0), label: getLabel(element),