From bd54a6bb2bb4594e7ce6fca4c7212f2d0d99b164 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Tue, 16 Jul 2024 10:03:02 -0700 Subject: [PATCH] Verify that perf_hooks result actually contains the performance object (#59300) --- src/compiler/performanceCore.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/compiler/performanceCore.ts b/src/compiler/performanceCore.ts index abff50eb8aa..ba03e7a3314 100644 --- a/src/compiler/performanceCore.ts +++ b/src/compiler/performanceCore.ts @@ -31,11 +31,14 @@ function tryGetPerformance() { if (isNodeLikeSystem()) { try { // By default, only write native events when generating a cpu profile or using the v8 profiler. - const { performance } = require("perf_hooks") as typeof import("perf_hooks"); - return { - shouldWriteNativeEvents: false, - performance, - }; + // Some environments may polyfill this module with an empty object; verify the object has the expected shape. + const { performance } = require("perf_hooks") as Partial; + if (performance) { + return { + shouldWriteNativeEvents: false, + performance, + }; + } } catch { // ignore errors