summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/perf_hooks.js10
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]);