Skip to content

Commit f8a4d60

Browse files
authored
fix(web-vitals): Check for valid entry in updatedCLS (#3816)
* fix: Check for valid entry in updatedCLS * fix: Make sure sessionEntries is a non-empty array
1 parent d79b6a7 commit f8a4d60

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

packages/tracing/src/browser/web-vitals/getCLS.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export const getCLS = (onReport: ReportHandler, reportAllChanges?: boolean): voi
3939
let report: ReturnType<typeof bindReporter>;
4040

4141
const entryHandler = (entry: LayoutShift): void => {
42-
if (!entry.hadRecentInput) {
42+
if (entry && !entry.hadRecentInput) {
4343
(metric.value as number) += entry.value;
4444
metric.entries.push(entry);
4545
if (report) {

packages/tracing/src/browser/web-vitals/getUpdatedCLS.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ export const getUpdatedCLS = (onReport: ReportHandler, reportAllChanges?: boolea
4343

4444
const entryHandler = (entry: LayoutShift): void => {
4545
// Only count layout shifts without recent user input.
46-
if (!entry.hadRecentInput) {
46+
// TODO: Figure out why entry can be undefined
47+
if (entry && !entry.hadRecentInput) {
4748
const firstSessionEntry = sessionEntries[0];
4849
const lastSessionEntry = sessionEntries[sessionEntries.length - 1];
4950

@@ -52,6 +53,7 @@ export const getUpdatedCLS = (onReport: ReportHandler, reportAllChanges?: boolea
5253
// entry in the current session. Otherwise, start a new session.
5354
if (
5455
sessionValue &&
56+
sessionEntries.length !== 0 &&
5557
entry.startTime - lastSessionEntry.startTime < 1000 &&
5658
entry.startTime - firstSessionEntry.startTime < 5000
5759
) {

0 commit comments

Comments
 (0)