From e712d42e44901dfb1cc8c06a96eec75fb17d851a Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Mon, 26 Oct 2020 17:27:44 -0700 Subject: [PATCH] Stop doing tracing work when tracing is disabled --- src/compiler/tracing.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/tracing.ts b/src/compiler/tracing.ts index 9498928f138..f00207ae198 100644 --- a/src/compiler/tracing.ts +++ b/src/compiler/tracing.ts @@ -101,22 +101,27 @@ namespace ts.tracing { * deprecate these operations. */ export function begin(phase: Phase, name: string, args?: object) { + if (!traceFd) return; writeEvent("B", phase, name, args); } export function end(phase: Phase, name: string, args?: object) { + if (!traceFd) return; writeEvent("E", phase, name, args); } export function instant(phase: Phase, name: string, args?: object) { + if (!traceFd) return; writeEvent("I", phase, name, args, `"s":"g"`); } // Used for "Complete" (ph:"X") events const completeEvents: { phase: Phase, name: string, args?: object, time: number }[] = []; export function push(phase: Phase, name: string, args?: object) { + if (!traceFd) return; completeEvents.push({ phase, name, args, time: 1000 * timestamp() }); } export function pop() { + if (!traceFd) return; Debug.assert(completeEvents.length > 0); const { phase, name, args, time } = completeEvents.pop()!; const dur = 1000 * timestamp() - time; @@ -125,7 +130,7 @@ namespace ts.tracing { function writeEvent(eventType: string, phase: Phase, name: string, args: object | undefined, extras?: string, time: number = 1000 * timestamp()) { - if (!traceFd) return; + Debug.assert(traceFd); Debug.assert(fs); performance.mark("beginTracing"); fs.writeSync(traceFd, `,\n{"pid":1,"tid":1,"ph":"${eventType}","cat":"${phase}","ts":${time},"name":"${name}"`);