summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/perf_hooks.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js
index 6fd6e4a6b7..025fa9edd0 100644
--- a/lib/perf_hooks.js
+++ b/lib/perf_hooks.js
@@ -36,6 +36,7 @@ const {
NODE_PERFORMANCE_MILESTONE_PRELOAD_MODULE_LOAD_END
} = constants;
+const { AsyncResource } = require('async_hooks');
const L = require('internal/linkedlist');
const kInspect = require('internal/util').customInspectSymbol;
const { inherits } = require('util');
@@ -317,12 +318,13 @@ class PerformanceObserverEntryList {
}
}
-class PerformanceObserver {
+class PerformanceObserver extends AsyncResource {
constructor(callback) {
if (typeof callback !== 'function') {
const errors = lazyErrors();
throw new errors.TypeError('ERR_INVALID_CALLBACK');
}
+ super('PerformanceObserver');
Object.defineProperties(this, {
[kTypes]: {
enumerable: false,
@@ -568,7 +570,7 @@ function getObserversList(type) {
function doNotify() {
this[kQueued] = false;
- this[kCallback](this[kBuffer], this);
+ this.runInAsyncScope(this[kCallback], this, this[kBuffer], this);
this[kBuffer][kEntries] = [];
L.init(this[kBuffer][kEntries]);
}