diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/perf_hooks.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js index cb1640ef9b..583ffb56ca 100644 --- a/lib/perf_hooks.js +++ b/lib/perf_hooks.js @@ -11,7 +11,8 @@ const { timeOrigin, timeOriginTimestamp, timerify, - constants + constants, + setupGarbageCollectionTracking } = internalBinding('performance'); const { @@ -273,6 +274,8 @@ class PerformanceObserverEntryList { } } +let gcTrackingIsEnabled = false; + class PerformanceObserver extends AsyncResource { constructor(callback) { if (typeof callback !== 'function') { @@ -334,6 +337,11 @@ class PerformanceObserver extends AsyncResource { if (entryTypes.length === 0) { throw new errors.ERR_VALID_PERFORMANCE_ENTRY_TYPE(); } + if (entryTypes.includes(NODE_PERFORMANCE_ENTRY_TYPE_GC) && + !gcTrackingIsEnabled) { + setupGarbageCollectionTracking(); + gcTrackingIsEnabled = true; + } this.disconnect(); this[kBuffer][kEntries] = []; L.init(this[kBuffer][kEntries]); |